【发布时间】:2018-05-28 18:42:04
【问题描述】:
我正在尝试使用 overlaycomplete 回调在绘制形状时获取形状的面积计算,但是似乎无法从 overlaycomplete 回调中获取任何路径信息?我试过使用 getPaths(),它只是一直说 getPaths 不是一个函数......试图找到一种方法来获取或构建绘制形状的 MVCArray,但也不起作用......我正在使用绘图控件库启用了圆形、矩形和多边形选项...或者我可以使用另一种方法来获取地图上绘制的所有形状的区域?
<div id="map"></div>
<script>
var map;
var allCircles=new Array();
var allRectangles=new Array();
var allPolygons=new Array();
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 13
});
var drawingManager = new google.maps.drawing.DrawingManager({
drawingMode: google.maps.drawing.OverlayType.MARKER,
drawingControl: true,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: ['circle','polygon','rectangle']
},
circleOptions: {
fillColor: '#888888',
fillOpacity: 0.7,
strokeWeight: 2,
clickable: false,
editable: true,
zIndex: 1
},
rectangleOptions: {
fillColor: '#888888',
fillOpacity: 0.7,
strokeWeight: 2,
clickable: false,
editable: true,
zIndex: 1
},
polygonOptions: {
fillColor: '#888888',
fillOpacity: 0.7,
strokeWeight: 2,
clickable: false,
editable: true,
zIndex: 1
}
});
drawingManager.setMap(map);
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(thisShape) {
if (thisShape.type == 'circle') {
allCircles.push(thisShape.getPaths());
}else if(thisShape.type == 'rectangle'){
allRectangles.push(thisShape.getPaths());
}else if(thisShape.type == 'polygon'){
allPolygons.push(thisShape.getPaths());
}
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=[API_KEY]&libraries=drawing,geometry&callback=initMap" async defer></script>
【问题讨论】:
标签: javascript google-maps-api-3