구글맵 API2010. 1. 15. 14:00

이번 예제는 Event Remove입니다.
예제를 실행시킨 다음 맵을 여러 번 클릭해 보세요.
처음 한번만 마커가 추가되고 이후로는 아무런 일도 일어나지 않습니다.

소스를 보죠.

   function initialize() {
      this.counter = 0;
      this.map = new GMap2(document.getElementById("map_canvas"));
      this.map.setCenter(new GLatLng(37.4419, -122.1419), 13);
      var myEventListener = GEvent.bind(this.map, "click", this, function(overlay, latlng) {
         if (this.counter == 0) {
           if (latlng) {
             this.map.addOverlay(new GMarker(latlng))
             this.counter++;
           } else if (overlay instanceof GMarker) {
             // This code is never executed as the event listener is
             // removed the second time this event is triggered
             this.removeOverlay(marker)
           }
         } else {
           GEvent.removeListener(myEventListener);
         }
      });
    }


this.counter를 읽어서 0인 경우에만 마커를 추가하고 this.counter를 증가시킵니다.
이후 this.counter가 0이 아니면 마커를 삭제합니다.

페이지가 로딩된 후 최초 한번만 어떤 이벤트를 실행시키고 싶을 때 응용하면 좋겠네요.


출처 : http://code.google.com/intl/ko/apis/maps/documentation/examples
Posted by 못생긴나무