2012-09-21 9 views
6

マーカーをドラッグしている間、google mal(v3)の内部で移動を無効にすることは可能ですか? 私は静的マップを使用したくありません。私は一般的な動きの機能が必要ですが、マーカーをドラッグする瞬間にはマップは動かないようにしてください。可動Gmapを無効にする

ありがとうございます!

答えて

15

マーカーはdragstart and dragend eventsです。 dragstartで、draggable,scrollwheelなどのMapOptionsfalseに設定して、マップ上の「移動」機能を無効にします。dragendで、MapOptionsをtrueに戻します。

ここでは、ブール値に基づいてマップの移動を無効または有効にする機能を使用できます。マップ変数はmapと仮定しています。

google.maps.event.addListener(marker, 'dragstart', function() { 
    disableMovement(true); 
}); 

google.maps.event.addListener(marker, 'dragend', function() { 
    disableMovement(false); 
}); 
+0

Ok - 地図の移動を無効にする属性ですか。 – Thomas1703

+2

@ Thomas1703これは本当にMapOptionsの組み合わせです。 'draggable'を' false'に設定すると、例えばパンニングが無効になります。 'scrollwheel'を' false'に設定すると、ズームするためにマウスのスクロールホイールの使用を無効にします。 'disableDoubleClickZoom'は、ユーザーがズームするためにマウスをダブルクリックできないようにするため、' true'に設定します。そして、完全性のために、マップ上のズームコントロールが隠されるように 'false'に設定することによって' zoomControl'を無効にしてください。これらのすべてが一緒にマップを移動するユーザーを制限する必要があります。 draggendでは、これらの属性をすべてデフォルト値に戻します。どのMapOptionsを設定するかを知るためにドキュメントを読んでください。 – Gady

+0

@ Thomas1703私はsetOptionsメソッドを使っていくつかのコード例で私の答えを更新しました。 – Gady

3

gmap.setOptions({ 'スクロールホイール':偽})

function disableMovement(disable) { 
    var mapOptions; 
    if (disable) { 
     mapOptions = { 
      draggable: false, 
      scrollwheel: false, 
      disableDoubleClickZoom: true, 
      zoomControl: false 
     }; 
    } else { 
     mapOptions = { 
      draggable: true, 
      scrollwheel: true, 
      disableDoubleClickZoom: false, 
      zoomControl: true 
     }; 
    } 
    map.setOptions(mapOptions); 
} 

そして、あなたはこのようなあなたのイベントでこれを使用します(は、あなたのマーカー変数です)。

関連する問題