我正在尝试通过在地图上单击鼠标来获取坐标。
在我滚动地图之前,坐标是正确的。之后它们是错误的 - 它们从点击的位置移动。如果我改变缩放级别,下一个坐标是正确的,直到我再次滚动地图。
首先我认为getLayerPxFromViewPortPx返回错误的值,因为如果我滚动到左侧和顶部并单击那里,它会给我一个带有负x和的像素y。但我想这是它的工作方式,并且x与y图层中心相关。
这是我所拥有的:
map.events.register("点击", map, function(e){
var opx = map.getLayerPxFromViewPortPx(e.xy) ;
var lonlat = map.getLonLatFromPixel(opx);
控制台日志(lonlat)
var marker = new OpenLayers.Marker(lonlat);
标记.addMarker(标记)
还有什么可能失败?