デフォルトでは、OpenLayers は、ユーザーがマップをダブルクリックするとズームインします。
この動作を無効にする最善の方法は何ですか?
デフォルトでは、OpenLayers は、ユーザーがマップをダブルクリックするとズームインします。
この動作を無効にする最善の方法は何ですか?
ダブルクリック機能のズームOpenLayers.Control.Navigation
は、明らかにコントロールの機能です。詳細については、OpenLayers リファレンスを参照してください。
小さくて非常に疲れた例:
var Navigation = new OpenLayers.Control.Navigation({
defaultDblClick: function(event) { return; }
});
マップの初期化中にコントロールが設定されていない場合、ナビゲーションコントロールが自動的にマップに追加されることを覚えています。そのため、Navigation コントロールを自分で追加する必要がある場合があります。
それが役立つことを願っています=)
OpenLayers 3 ドキュメントリンク。
静的な方法:
var map = new ol.Map({
interactions: ol.interaction.defaults({ doubleClickZoom: false }),
...
});
動的な方法:
var interactions = map.getInteractions();
for (var i = 0; i < interactions.getLength(); i++) {
var interaction = interactions.item(i);
if (interaction instanceof ol.interaction.DoubleClickZoom) {
map.removeInteraction(interaction);
break;
}
}
上記の答えは正しいですが、このコントロールをマップに明示的に追加して、デフォルトのナビゲーション コントロールをオーバーライドする必要があります。
var Navigation = new OpenLayers.Control.Navigation({
defaultDblClick: function(event) { return; }
});
map.addControl(Navigation);
次のコントロールは、デフォルトで OpenLayers.Map に追加されます: OpenLayers.Control.Navigation、OpenLayers.Control.PanZoom、OpenLayers.Control.ArgParser、OpenLayers.Control.Attribution
したがって、これらの既定の動作をすべてオフにする場合の別のオプションは、オープン レイヤー マップ コンストラクターの options パラメーターで空の配列を送信することです。詳細については、リンク テキストを参照してください。