我正在尝试通过在地图上单击鼠标来获取坐标。
在我滚动地图之前,坐标是正确的。之后它们是错误的 - 它们从点击的位置移动。如果我改变缩放级别,下一个坐标是正确的,直到我再次滚动地图。
首先我认为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(标记)
还有什么可能失败?