Я застрял, добавляя векторную точку в широте / долготе поверх слоя Google в OpenLayers. Точка движется, когда я панорамирую карту. Этого не произойдет, если я заменю слой Google слоем в WGS84. Как я могу это исправить?
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]);
Я пытался подписаться на http://docs.openlayers.org/library/spherical_mercator.html, но безуспешно.
openlayers-2
javascript
Подземье
источник
источник
Ответы:
Вам нужно добавить несколько изменений, чтобы получить требуемые результаты:
Рабочий код ниже:
источник
Это проблема проецирования, вы должны преобразовать проекцию точки в базовый слой (карта Google здесь). Следующий код должен работать
Это связано с тем, что проекция по умолчанию для карты Google (сферический меркатор) составляет 900913, а для простой точки в lonlat - 4326.
Пожалуйста, убедитесь, что точка установлена как (долгота, широта), а не как (широта, долгота).
источник
Когда вы работаете с Google Maps JS API, вы должны быть осторожны с версией. По умолчанию используется версия разработки Google JS Maps API. Проверьте страницу: http://code.google.com/apis/maps/documentation/javascript/basics.html#Versioning
И команда Google Maps JS тоже исправляет ошибки. Проверьте http://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog
В дальнейшем упомяните версию Google Maps API в вопросе. v3.3 не было проблем с Openlayers, так как в основном они использовались разработчиками.
источник
Я думаю, что это вопрос проекции.
Вы пытались сообщить центр тяжести точки, когда карта поворачивается? Вы можете увидеть, если что-то меняется.
Но из того, что я могу увидеть в вашем коде, вы добавили бы точку WGS84 к другому corordsys
источник