이벤트 핸들러 내에서 속성 가져오기 및 설정하기
Maps API 이벤트 시스템에서 MVC 상태 변경 이벤트는 이벤트가 트리거될 때 인자를 전달하지 않습니다. 반면 사용자 이벤트는 검사할 수 있는 인자를 전달합니다. MVC 상태 변경에 대한 속성을 검사해야 하는 경우 객체에 대해 적절한 getProperty()
메소드를 명시적으로 호출해야 합니다. 검사에서는 항상 MVC 객체의 현재 상태를 가져오므로 이벤트가 처음 발생된 때의 상태가 아닐 수도 있습니다.
참고: 특정 속성의 상태 변경에 응답하는 이벤트 핸들러 내에서 속성을 명시적으로 설정하면 예기치 않거나 원하지 않은 동작이 생성될 수 있습니다. 예를 들어, 속성 설정은 새로운 이벤트를 트리거하고 항상 이벤트 핸들러 내에서 속성을 설정하는 경우 무한 루프가 만들어질 수 있습니다.
아래 예제에서는 수준을 표시하는 정보 창을 표시하여 확대/축소 이벤트에 응답하는 이벤트 핸들러를 설정합니다. 또한 지도가 완전히 축소되는지 확인하고, 그럴 경우 줌레벨 17로 확대합니다.
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var myOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var zoomLevel;
var infowindow = new google.maps.InfoWindow(
{ content: 'Zoom Level Test',
size: new google.maps.Size(50,50),
position: myLatlng
});
infowindow.open(map);
google.maps.event.addListener(map, 'zoom_changed', function() {
zoomLevel = map.getZoom();
infowindow.setContent("Zoom: " + zoomLevel);
if (zoomLevel == 0) {
map.setZoom(10);
}
});
}
'Backup' 카테고리의 다른 글
구글맵 - 지도에 컨트롤 추가 & 삭제 (0) | 2012.04.18 |
---|---|
구글맵 API - DOM 이벤트 수신하기 (0) | 2012.04.18 |
구글맵 이벤트 - 클릭하면 메세지창출력 (0) | 2012.04.18 |
구글맵 이벤트 - 클릭한곳 마커찍기 (0) | 2012.04.18 |
구글맵 이벤트 - 클릭하면 이동 (0) | 2012.04.18 |