2011-11-20 17 views
41

disable()関数内にコードを追加して、GoogleマップAPI v3で「無効」ボタンをクリックしてドラッグ&ズームを無効にしたい。ボタンをクリックしてGoogleマップでズームを無効にする

<script type="text/javascript"> 
    var map; 

    function initialize() { 
var uluru = new google.maps.LatLng(21, 57); 
map = new google.maps.Map(document.getElementById("map"), { 
    zoom: 6, 
    center: uluru, 
    mapTypeId: google.maps.MapTypeId.HYBRID 
}); 
} 


function disable(){ 

} 

</script> 


<body onload="initialize()" > 

    <input type="button" id="next" value="disableZoomDrag" onclick="disable()"> 

</body> 

答えて

117

あなたはマップオブジェクトにsetOptions()メソッドを使用することができます。

map.setOptions({draggable: false, zoomControl: false, scrollwheel: false, disableDoubleClickZoom: true}); 

これはズーム妨げるものではない場合、あなたは常に現在のズームレベルに最小値と最大ズームを設定することができます。

disableDefaultUIオプションもありますが、これはすべてのイベントを考慮している可能性がありますが、既存の要素をクリックすることはできません。

+0

ありがとうございます。あなたは素晴らしいです^^ –

+0

マップオブジェクトの新しいインスタンスを開始するときに、これらを追加することもできます: 'var map = new google.maps.Map(mapElement、mapOptions);' 'mapOptions'はあなたのオプションになります: 'var mapOptions = {draggable:false、zoomControl:false、scrollwheel:false、disableDoubleClickZoom:true};' –

2

@ ScottEの答えは、使用する正しい方向に私を指摘しましたmap.setOptions()。しかし、API documentationから、より洗練されたオプションセットがあることがわかりました。おそらく、これらは答えより新しいですが、彼らは私のためにかなりうまく動作します。

function disablePanningAndScrolling() 
{ 
    map.setOptions({ 
     zoomControl: false, 
     gestureHandling: 'none' 
    }); 
} 

ズームやパンを完全に無効にします。

はちょうど彼らのデフォルトに戻ってプロパティを設定し、正常な状態に物事を戻すには:

function enablePanningAndScrolling() 
{ 
    map.setOptions({ 
     zoomControl: true, 
     gestureHandling: 'greedy' // or 'cooperative'* 
    }); 
} 

*:それがあるときにページが、協力スクロール可能でない場合、デフォルトは貪欲です。あなたのアプリケーションの状況を選んでください。