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