地図上でマウスをクリックして座標を取得しようとしています。
地図をスクロールするまで座標は正しいです。その後、それらは間違っています-クリックの位置からシフトされます。ズームレベルを変更すると、マップをもう一度スクロールするまで次の座標が正しくなります。
最初に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) varmarker = new OpenLayers.Marker(lonlat); マーカー.addMarker(マーカー)
他に何が失敗している可能性がありますか?