2010-12-14 14 views
3

私は、ユーザーがビジネス用に複数の場所を管理し、追加の場所を追加したり、不要になった場所を削除したりすることができます。Google Maps API v3のパンとマーカーの移動ロックを切り替えます

私のインターフェイスには、それぞれ独自のマップを持つ場所の一覧が表示されます。

私の質問は、ユーザーが「位置を編集」ボタンをクリックするまで、マーカーをパンまたは移動しないように地図をロックするにはどうすればよいですか?

トグルマップロック機能はありますか?

これまでのところ、次の2つの方法があります。ロック();メソッドは正常に動作しますが、unlock();メソッドは何らかの理由で動作しません。

lock: function() { 
    this.map.disableDoubleClickZoom = true; 
    this.map.draggable = false; 
    this.map.keyboardShortcuts = false; 
    this.map.navigationControl = false; 
    this.map.scaleControl = false; 
    this.map.scrollwheel = false; 
    this.map.streetViewControl = false; 
    this.marker.draggable = false; 
}, 

unlock: function() { 
    this.map.disableDoubleClickZoom = false; 
    this.map.draggable = true; 
    this.map.keyboardShortcuts = true; 
    this.map.navigationControl = true; 
    this.map.scaleControl = true; 
    this.map.scrollwheel = true; 
    this.map.streetViewControl = true; 
    this.marker.draggable = true; 
    console.log("unlock"); 
}, 

答えて

4

disableDoubleClickZoom(と記載されている他のプロパティ)は、Mapクラスのパブリックプロパティではありません - 彼らはMapOptionsクラスのプロパティです。値に基づいて、地図の現在の状態を更新

lock: function() { 
    this.map.setOptions({ 
    disableDoubleClickZoom: true, 
    draggable: false 
    }); 
}, 

unlock: function() { 
    this.map.setOptions({ 
    disableDoubleClickZoom: false, 
    draggable: true 
    }); 
} 

これは({}の内側)MapOptionsオブジェクトを作成し、SetOptionsはに渡し、:その値を変更するには、次のようなものが必要渡されました

関連する問題