Ich füge keinen Vektorpunkt in lat / lon auf einer Google-Ebene in OpenLayers hinzu. Der Punkt bewegt sich, wenn ich die Karte schwenke. Dies passiert nicht, wenn ich die Google-Ebene durch eine Ebene in WGS84 ersetze. Wie kann ich das beheben?
map = new OpenLayers.Map('map');
map.addControl(new OpenLayers.Control.LayerSwitcher());
var gmap = new OpenLayers.Layer.Google(
"Google Streets",
{numZoomLevels: 20}
);
var pointLayer = new OpenLayers.Layer.Vector("Point Layer");
map.addLayers([gmap,pointLayer]);
map.setCenter(new OpenLayers.LonLat(16.373056, 48.208333), 5);
var point = new OpenLayers.Geometry.Point(16.373056, 48.208333);
var pointFeature = new OpenLayers.Feature.Vector(point,null,null);
pointLayer.addFeatures([pointFeature]);
Ich habe versucht, http://docs.openlayers.org/library/spherical_mercator.html zu folgen, aber ohne Erfolg.
openlayers-2
javascript
Underdunkel
quelle
quelle
Antworten:
Sie müssen einige Änderungen hinzufügen, um die erforderlichen Ergebnisse zu erhalten:
Arbeitscode unten:
quelle
Dies ist ein Projektionsproblem, Sie müssen die Projektion des Punkts in die der Basisebene umwandeln (Google Map hier). Der folgende Code sollte funktionieren
Dies liegt daran, dass die Standardprojektion von Google Map (Spherical Mercator) 900913 und die eines einfachen Punkts in Lonlat im Jahr 4326 ist.
Bitte stellen Sie sicher, dass der Punkt als (Längengrad, Breitengrad) und nicht als (Breitengrad, Längengrad) eingestellt ist.
quelle
Wenn Sie mit der Google Maps JS-API arbeiten, sollten Sie auf die Version achten. Standardmäßig wird die Entwicklungsversion der Google JS Maps-API verwendet. Überprüfen Sie die Seite: http://code.google.com/apis/maps/documentation/javascript/basics.html#Versioning
Und das Google Maps JS-Team behebt auch Fehler. Überprüfen Sie http://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog
Erwähnen Sie in Zukunft die Google Maps API-Version in der Frage. v3.3 hatte keine Probleme mit Openlayern, wie sie hauptsächlich von Entwicklern verwendet werden.
quelle
Ich denke, es ist ein Projektionsproblem.
Haben Sie versucht, den Schwerpunkt des Punkts zu melden, an dem die Karte schwenkt? Möglicherweise können Sie sehen, ob sich etwas ändert.
Aber von dem, was ich von Ihrem Code sehe, würden Sie WGS84 Punkt zu einem anderen corordsys hinzufügen
quelle