【发布时间】:2012-04-21 05:45:15
【问题描述】:
我正在尝试通过在地图上单击鼠标来获取坐标。
在我滚动地图之前,坐标是正确的。之后它们是错误的 - 它们从点击的位置移动。如果我改变缩放级别,下一个坐标是正确的,直到我再次滚动地图。
首先我认为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(标记)还有什么可能会失败?
【问题讨论】:
-
您能否提供一个完整的示例,包括地图和图层设置?
-
我将 getLonLatFromPixel() 更改为
var lonlat = map.getLonLatFromViewPortPx(e.xy),现在它似乎工作了。但是我仍然很好奇为什么以前的失败。关于完整的例子,你可以在这里找到:dev.ivanatora.info/spirki
标签: javascript coordinates openlayers