2012-03-24 33 views
3

我正在使用API​​ V3的Google地圖繪圖管理器。 google.maps.drawing.DrawingManager獲取當前Google地圖API V3上的疊加圖形列表

我讓用戶在地圖上繪製多個圓形覆蓋圖。然後,當他們點擊一個'保存'按鈕時,我需要能夠獲得所有圈子的屬性,並最終完成我的服務器端魔術。

如何獲得圓形列表,作爲對象或數組...等,使用Javascript?

下面是我創建DrawingManager並將Circle工具添加到控件的代碼。我在下面或多或少,這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你完成繪製覆蓋(在你的情況下,它是圓),之後將被分派。您可以處理它並將新創建的對象添加到數據結構中,例如數組,您可以使用它來存儲對象並將它們發送到服務器。嘗試這樣的:

//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 2012-03-24 18:32:19

相關問題