マップ上でマウスをクリックして座標を取得しようとしています。Openlayers - ピクセルからの座標が正しくない
マップをスクロールするまで、座標は正しく表示されます。その後、彼らは間違っている - 彼らはクリックの位置からシフトされます。ズームレベルを変更した場合、次の座標はマップが再びスクロールされるまで正しく表示されます。
まず、私は左に、上にスクロールして、そこをクリックした場合、それは私に負x
とy
とのピクセルを与えるので、私は、getLayerPxFromViewPortPx
返します誤った値を考えました。しかし、それはそれが動作する方法であり、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)
失敗する可能性が他に何が?
地図やレイヤの設定など、完全な例を教えてください。 –
私は 'var lonlat = map.getLonLatFromViewPortPx(e.xy)'でgetLonLatFromPixel()を変更しました。しかし、私はまだ不思議なことに、前回の失敗はどうでしたか?完全な例については、こちらをご覧ください:http://dev.ivanatora.info/spirki/ –