2012-03-24 3 views
3

API V3의 Google지도 그리기 관리자를 사용하고 있습니다. google.maps.drawing.DrawingManager현재 Google지도 API V3에있는 오버레이 모양 목록 얻기

지도에서 여러 개의 원 오버레이를 그릴 수 있도록합니다. 그런 다음 '저장'버튼을 클릭하면 모든 서클의 속성을 가져 와서 결국 서버 측 마법을 수행 할 수 있어야합니다.

개체 또는 배열 등으로 서클 목록을 어떻게 얻을 수 있습니까? 자바 스크립트를 사용하고 있습니까?

다음은 DrawingManager를 만들고 서클 도구를 컨트롤에 추가하는 코드입니다. 나는이 https://developers.google.com/maps/documentation/javascript/reference#DrawingManager

if (drawingManager == null) { 
    drawingManager = new google.maps.drawing.DrawingManager({ 
     drawingMode: google.maps.drawing.OverlayType.CIRCLE, 
     drawingControl: false, 
     drawingControlOptions: { 
      position: google.maps.ControlPosition.TOP_CENTER, 
      drawingModes: [google.maps.drawing.OverlayType.CIRCLE] 
     }, 
     circleOptions: { 
      fillColor: '#FF0000', 
      fillOpacity: 0.35, 
      strokeWeight: 5, 
      clickable: false, 
      draggable: true, 
      zIndex: 1, 
      editable: true 
     } 
    }); 
} 

답변

4

당신이 (당신의 경우는 원입니다) 오버레이를 그리기 완료 후 발송됩니다 이벤트 overlayComplete있다, 더 많거나 적은 다음되었다. 이를 처리하고 새로 생성 된 객체를 데이터 구조에 추가 할 수 있습니다. to 배열을 사용하여 객체를 저장하고 서버로 보낼 수 있습니다. 다음과 같이 시도하십시오.

//After creating 'drawingManager' object in if block 
    google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) { 
     if (event.type == google.maps.drawing.OverlayType.CIRCLE) { 
     //Add 'event.overlay', which is Circle, to array 
     } 
    }); 
+1

잘 작동합니다. 'overlaycomplete'이벤트는 각 원이 만들어지고 마우스 버튼이 놓이면 트리거됩니다. 그걸 배열에 저장하는 것만으로 충분합니다. 고맙습니다! – Nick