17

デフォルトでは、OpenLayers は、ユーザーがマップをダブルクリックするとズームインします。

この動作を無効にする最善の方法は何ですか?

4

3 に答える 3

15

ダブルクリック機能のズームOpenLayers.Control.Navigationは、明らかにコントロールの機能です。詳細については、OpenLayers リファレンスを参照してください。

小さくて非常に疲れた例:

var Navigation = new OpenLayers.Control.Navigation({
    defaultDblClick: function(event) { return; }
});

マップの初期化中にコントロールが設定されていない場合、ナビゲーションコントロールが自動的にマップに追加されることを覚えています。そのため、Navigation コントロールを自分で追加する必要がある場合があります。

それが役立つことを願っています=)

于 2010-09-29T08:42:06.607 に答える
10

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;
    }
}
于 2015-04-30T11:56:13.403 に答える
7

上記の答えは正しいですが、このコントロールをマップに明示的に追加して、デフォルトのナビゲーション コントロールをオーバーライドする必要があります。

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 パラメーターで空の配列を送信することです。詳細については、リンク テキストを参照してください。

于 2011-01-14T08:52:50.480 に答える