如何注册活动"功能点击"只在openlayer中单击?

时间:2015-01-12 13:43:46

标签: javascript openlayers-3

map.events.register("featureclick", map, function(e){

}

我想仅针对单击而不是双击来触发此事件。

在openlayer中有可能吗?我怎么能做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以尝试类似下面的代码,

map.on('click', function(evt){

    var feature = map.forEachFeatureAtPixel(evt.pixel,
        function(feature, layer) {

            //yourCode ;


    });

});

当您单击地图时,上面的代码会将其关联图层的每个要素传递到标记为// yourcode的区域。然后,如果您只希望这可以处理来自certian层的功能,则可以对图层变量使用if语句。

答案 1 :(得分:0)

根据openlayers API,如果我们在地图上使用click事件监听器,它将在地图上双击两次。供参考https://docs.gradle.org/3.4.1/userguide/gradle_daemon.html

所以我建议使用 singleclick 事件,当我们双击地图时它不会触发两次。供参考see click event.

org.gradle.jvmargs=-Xmx3072m -XX:MaxPermSize=524m

请注意,此事件会延迟250毫秒,以确保不是双击。