簡體   English   中英

在OpenLayers 2中停止活動?

[英]Stop an event in OpenLayers 2?

我有一張有特色的地圖。 我想快速瀏覽一下功能並對“ featureselected”功能做出反應。 我還希望能夠單擊地圖上的其他位置。

  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(evt) {
        // do things
    }
  });



    var click = new OpenLayers.Control.Click();
    selectControl = new OpenLayers.Control.SelectFeature(vector);
    _map.addControl(selectControl);
    selectControl.activate();
    _map.addControl(click);
    click.activate();
    vector.events.on({
        'featureselected': onSelect,

單擊功能時,我不想調用地圖的單擊功能。 我必須調用onSelect來防止事件傳播,冒泡嗎? 現在,當我單擊某個功能時,將同時調用這兩個功能。 我嘗試過OpenLayers.Event.stop(evt),發現evt.cancelBubble,找不到evt.Bubbles

非常感謝,Ropo

我有一個帶有MouseOver-Control(矢量),一個SelectFeature(矢量)和一個Click-Event的OpenLayers映射,它搜索GetFeatureInfo-請求一個單擊位置(如果未找到任何內容)。

它可以幫助您在SelectControl之前添加Click-Control。

我的init函數大致如下所示:

oMouseOverCtrl = new OpenLayers.Control.SelectFeature( oMouseOverVectorArray, { ... });
oMapObj.addControl( oMouseOverCtrl );
oMouseOverCtrl.activate(); 

oMouseClickControl = new OpenLayers.Control.SelectFeature( oMouseOverVectorArray, { ... });
oMapObj.addControl( oMouseClickControl );
oMouseClickControl.activate();

oMouseClickControlInfotool = new OpenLayers.Control.WMSGetFeatureInfo({...});
oMapObj.addControl( oMouseClickControlInfotool );
oMouseClickControlInfotool.activate();

暫無
暫無

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

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