2010-12-14 11 views
3

사용자가 비즈니스를 위해 여러 위치를 관리하고 추가 위치를 추가하고 더 이상 필요없는 위치를 제거 할 수있는 인터페이스가 있습니다.Google Maps API v3에서 패닝 및 마커 이동 잠금 켜기

내 인터페이스에는 각각 자신의지도가있는 위치 목록이 표시됩니다.

내 질문은 사용자가 '위치 수정'버튼을 클릭 할 때까지지도를 이동하거나 마커를 이동하지 못하도록지도를 잠그는 방법입니다.

어떤 종류의 toggleMapLock 기능이 있나요?

지금까지 다음 두 가지 방법이 있습니다. 자물쇠(); 메서드는 잘 동작하지만 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 (나열된 다른 속성)은지도 클래스의 공용 속성되지 않습니다 - 그들이하는 MapOptions 클래스의 속성입니다. 값을 기준으로지도의 현재 상태를 업데이트

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

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

이합니다 ({}의 내부)을하는 MapOptions 객체를 생성하고 setoptions 명령에 전달, 그들의 값을 변경하려면 다음과 유사한 뭔가가 필요 건네 받음.

관련 문제