javascript - OpenLayers 选择要素和 XY

标签 javascript events maps openlayers

我需要知道在要素上单击的确切点。使用 SelectFeature 我可以获得有关单击哪个功能的信息,但没有关于 map 上位置的信息。

这是创建监听器函数的代码:

select = new OpenLayers.Control.SelectFeature(
            [vectorLayer],
            {
                clickout: false, toggle: false,
                multiple: false, hover: false
            }
        );

osMap.addControl(select); 

这是听众的定义:

vectorLayer.events.on({
            "featureselected": function(e) {
                 //here I need to get XY
                 //something like the code below 
                 //(it doesn't work but clearly explains what my idea is)           
                 var lonlat = osMap.getLonLatFromViewPortPx(e.xy);

            }
});    

谢谢

最佳答案

Niklas 是对的,我对弹出窗口使用类似的东西:

var popup = new OpenLayers.Popup.Anchored(
  "popup", 
  map.getLonLatFromPixel(evt.xy),
  null,
  evt.text,
  null,
  false
);

如果 evt 不可用,您可以使用 MousePosition 控件:

 map.getLonLatFromPixel(
   (map.getControlsByClass("OpenLayers.Control.MousePosition‌​")[0]).lastXy
 ) 

关于javascript - OpenLayers 选择要素和 XY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5142222/

相关文章:

javascript - 在 Three.js 和 WebGL 中渲染 2D SVG 时遇到问题

javascript - 没有页面滚动条的响应式 Bootstrap 模式

c# - 如何更好地使用 KeyDown 事件验证?

iphone - Google map 如何确定用户在 map 上的位置?

Android折线图api

ios - 控制 iOS GPS 输入

javascript - 第一个淡入淡出有时似乎不起作用(jquery)

javascript - Node 7 : EventEmitter + await/async

actionscript-3 - AS3 : Type Coercion failed: cannot convert flash. 事件到 flash.events.MouseEvent

android - 如何将事件添加到android calendarview