2017-03-10 25 views
2

私はopenlayers 3.20.0を使用しています。下のリンクをクリックすると小さな例が表示されます。「シングルクリック」イベントを抑制する方法openlayers 3で地図上に描画中

click-here.(例ではログのコンソールを参照)

私はここ

this.map = new ol.Map({ 
    layers : [ somelayer ], 
    target : 'map', 
    view : new ol.View({ 
     center : [ -11000000, 4600000 ], 
     zoom : 4 
    }) 
}); 

としてマップオブジェクトを持っている私が 'singleclick' と地図上の 'DBLCLICKを' 取り付けられています。

そしてまた私が発する 'drawstart' と 'drawend' イベントです

this.draw = new ol.interaction.Draw({ 
    features : features, 
    type : "Point" 
}); 

以下のように、地図上の相互作用を描いています。

しかし、ポイントを描画するときには、マップ上で 'singleclick'イベントも発生します。これを防ぐために、どのようにして 'singleclick'を描画しないようにしますか?

描画中に 'singleclick'イベントリスナーを削除できますが、リスナーを削除してもう一度追加したくないことがわかりました。

他にこのイベントを抑制する方法はありますか。

+0

'するevent.stopPropagationを();'これを使用しています。 – Jai

+0

私もそれを試してみましたが、うまくいきませんでした。 –

+1

あなたが抑制しようとしていることは明確ではありません。なぜなら、 'singleclick'がアクティブであるかどうかは何も変わらないからです。しかし、私は 'event.preventDefault()'を探していると思います。 –

答えて

1

私は同じ問題を抱えていました。私はunByKeyメソッドでこれを解決しました。すべてのmap.onメソッドは一意のキーを返します。シングルクリックイベントを停止するには、map.unByKey(singleclick_key)を使用します。描画を完了した後で初期化することができます。

var singleclick_key= map.on('singleclick', function(evt){ 
//statements 
} 

をし、次のコマンドを使用して、このイベントを削除することができます:

だから、あなたはこのような何かを探している

map.unByKey(singleclick_key); 
関連する問題