Я пытаюсь получить координаты с щелчка мышью на карте.Openlayers - координаты с неправильного пикселя
Координаты направо, пока я не прокручу карту. После этого они ошибаются - они сдвинуты с позиции щелчка. Если я изменю масштабный уровень, следующие координаты будут правы, пока я снова не прокручу карту.
Сначала я думал, что getLayerPxFromViewPortPx
возвращает неправильное значение, потому что если я прокручивать влево и к вершине и нажмите там она дает мне пиксель с отрицательным x
и y
. Но я полагаю, что это так, как это работает, и x
и y
относятся к центру слоев.
Вот что у меня есть:
map.events.register("click", map, function(e){ var opx = map.getLayerPxFromViewPortPx(e.xy) ; var lonlat = map.getLonLatFromPixel(opx); console.log(lonlat) var marker = new OpenLayers.Marker(lonlat); markers.addMarker(marker)
Что еще может быть провал?
Не могли бы вы предоставить полный пример, включая настройку карты и слоев? –
Я изменил getLonLatFromPixel() с помощью 'var lonlat = map.getLonLatFromViewPortPx (e.xy)', и теперь это похоже на работу. Однако мне все еще любопытно, почему предыдущая неудача. О полном примере вы можете найти здесь: http://dev.ivanatora.info/spirki/ –