OpenLayers - 如何在功能上使用单击和双击事件

时间:2015-04-24 11:23:16

标签: javascript openlayers

我正在使用Opnelayers控件来选择功能

OpenLayers.Control.SelectFeature

当我触发单击事件时,功能被选中,它对我来说很好。现在我想使用双击事件进行另一次操作。

我从这个链接feature to have both a single click and double click event?

中得到了这个想法

我使用相同的代码并且单击事件都正常工作但我无法获得执行单击事件的功能。这是代码

handler = new OpenLayers.Handler.Click(
    select,
    {
        click: function(evt)
        {

            var feature = this.layer.getFeatureFromEvent(evt);

            console.log(feature); // output null

            if(this.layer.selectedFeatures){
                this.unselect(this.layer.selectedFeatures[0]);
            }
        },
        dblclick: function(evt)
        {
            // some other operation
        }
    },
    {
        single: true,
        double: true,
        stopDouble: true,
        stopSingle: true
    }
);

handler.activate();

知道这段代码中缺少哪些东西?

谢谢

2 个答案:

答案 0 :(得分:0)

我遇到过类似的情况,并使用了图层源的getClosestFeatureToCoordinate方法。代码类似于:

Array.map

答案 1 :(得分:0)

对于上述问题,这可能会在几乎没有变化的情况下解决您的答案

var handler = new OpenLayers.Handler.Click(
layerName, { 
  click: function(evt) {
    console.log('click has triggered');
    var feature = layerName.getFeatureFromEvent(evt);
  }
  ,dblclick: function(evt) {
    console.log('dblclick has triggered');
  }
},{
  single: true  
  ,double: true
  ,stopSingle: true
  ,stopDouble: true
}  
);
handler.activate();