获取当前在Google Map API V3上的叠加形状列表

时间:2012-03-24 17:28:39

标签: javascript google-maps google-maps-api-3

我正在使用API​​ V3的Google Maps Drawing Manager。的 google.maps.drawing.DrawingManager

我让用户在地图上绘制一些圆形叠加层。然后,当他们点击“保存”按钮时,我需要能够获得所有圈子的属性,并最终使用它来做我的服务器端魔术。

如何使用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
        }
    });
}

1 个答案:

答案 0 :(得分: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
      }
  });