Je suis bloqué en ajoutant un point vectoriel en lat / lon au-dessus d'une couche Google dans OpenLayers. Le point bouge lorsque je déplace la carte. Cela ne se produit pas si je remplace la couche Google par une couche dans WGS84. Comment puis-je réparer cela?
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]);
J'ai essayé de suivre http://docs.openlayers.org/library/spherical_mercator.html mais sans succès.
openlayers-2
javascript
obscur
la source
la source
Réponses:
Vous devez ajouter quelques modifications pour obtenir les résultats requis:
Code de travail ci-dessous:
la source
C'est un problème de projection, il faut transformer la projection du point en celle de la couche de base (google map ici). Le code suivant devrait fonctionner
En effet, la projection par défaut de google map (mercator sphérique) est 900913 et celle d'un simple point à lonlat en 4326.
Veuillez vous assurer que le point est défini comme (longitude, latitude) et non comme (latitude, longitude).
la source
Lorsque vous travaillez avec l'API Google Maps JS, vous devez faire attention à la version. Il existe par défaut une version de développement de l'API Google JS Maps. Consultez la page: http://code.google.com/apis/maps/documentation/javascript/basics.html#Versioning
Et l'équipe Google Maps JS corrige également des bugs. Vérifiez http://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog
À l'avenir, mentionnez la version de l'API Google Maps dans la question. La v3.3 n'a eu aucun problème avec Openlayers car principalement utilisé par les développeurs.
la source
Je pense que c'est un problème de projection.
Avez-vous essayé de signaler le centre de gravité du point lorsque la carte se déplace? Vous pourrez peut-être voir si quelque chose change.
Mais d'après ce que je vois sur le code yuor, vous ajouteriez un point WGS84 à un autre corordsys
la source