簡體   English   中英

如何在openlayer中僅為單擊注冊事件“功能單擊”?

[英]How to register an event “feature click” only for single click in openlayer?

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

}

我只想單擊一次而不是雙擊來觸發此事件。

在openlayer中有可能嗎? 我該怎么做?

您可以嘗試以下代碼,

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

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

            //yourCode ;


    });

});

當您單擊地圖時,上面的代碼會將每個要素的關聯層傳遞到標記為//您的代碼的區域。 然后,如果僅希望此變量對certian圖層中的要素起作用,則可以對圖層變量使用if語句。

根據openlayers API,如果我們在地圖上使用click事件偵聽器,則它將雙擊兩次以調用地圖。 作為參考, 請參見click事件。

因此,我建議使用singleclick事件,當我們雙擊地圖時,它不會觸發兩次。 作為參考, 請參見singleclick事件。

map.on('singleclick', function(evt) {
    map.forEachFeatureAtPixel(evt.pixel,
        function(feature, layer) {
        //yourCode ;
    });
});

請注意,此事件會延遲250毫秒,以確保它不是雙擊事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM