开放层 - 像素坐标不正确
Openlayers - coordinates from pixel incorrect
我正在尝试通过在地图上单击鼠标来获取坐标。
坐标是正确的,直到我滚动地图。之后他们错了 - 它们从点击位置移动。如果我更改缩放级别,则下一个坐标是正确的,直到我再次滚动地图。
首先,我认为getLayerPxFromViewPortPx
返回错误的值,因为如果我向左和向顶部滚动并单击那里,它会给我一个带有负x
和y
的像素。但我想这是它的工作方式,x
和y
是相对于层中心的。
这是我所拥有的:
map.events.register("click", map, function(e){ var opx = map.getLayerPxFromViewPortPx(e.xy) ; var lonlat = map.getLonLatFromPixel(opx); 控制台.log(隆拉特) var marker = new OpenLayers.Marker(lonlat); markers.addMarker(marker)
还有什么可能失败?
我用var lonlat = map.getLonLatFromViewPortPx(e.xy)
更改了getLonLatFromPixel()
,现在它似乎可以工作。但是我仍然很好奇为什么以前的失败了。
in init function()
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
初始化函数输出
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: {
'single': true,
'double': false,
'pixelTolerance': 0,
'stopSingle': false,
'stopDouble': false
},
initialize: function (options) {
this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions
);
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.handler = new OpenLayers.Handler.Click(
this, {
'click': this.trigger
}, this.handlerOptions
);
},
trigger: function (e) {
var lonlat = map.getLonLatFromPixel(e.xy);
N = lonlat.lat;
E = lonlat.lon;
alert("Bu koordinatlar civarındasınız: " + N + " N, " + E + " E");
}
});
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Amazon S3 REST API大小不正确
- Javascript Reg Exp不正确匹配
- DIV并排,位置不正确
- 仅在IE中,javascript中的时区名称不正确
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- 你能解释一下为什么这个javascript不正确吗
- 从int值来看,Javascript日期不正确
- jQuery-迭代不正确?(太长,无法执行)
- 字符串解析不正确
- 日历显示不正确
- 引导程序下拉列表显示不正确
- Node.js:多个然后'It’执行顺序不正确
- Highcharts热图显示不正确
- D3JS 图绘制在不正确的坐标处
- 开放层 - 像素坐标不正确
- 为什么Raphael.js的动画设置到不正确的坐标
- css缩放的谷歌地图点击不正确的坐标
- firefox中的Google地图mouseevent显示不正确的坐标
- 谷歌地图坐标不正确