我正在使用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
}
});
}
答案 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
}
});