我正试图在This Google Map Demo抓住所有新创建的多边形坐标
点击Coordinates
btn:
google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
coordinates = (polygon.getPath().getArray());
console.log(coordinates);
});
function getCoordinates() {
document.getElementById("result").innerHTML += "Polygon No # -" +coordinates;}
google.maps.event.addDomListener(document.getElementById('CoordsButton'), 'click', getCoordinates);
});
但是你可以看到代码只返回新完成的多边形坐标。你能告诉我如何从所有创建的多边形中获取坐标,从开始绘图到创建一个多边形(自按钮点击)到点击Coordinates
按钮?
有没有办法可以为每个创建的Polygon关联数字?与Polygon No1 {..
我将全局数组声明为:
var newpolygons =[];
并将代码更新为:
google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
coordinates = (polygon.getPath().getArray());
console.log(coordinates);
newpolygons.push(coordinates);
});
现在可以告诉我如何取回它们吗?
答案 0 :(得分:0)
好的,感谢geocodezip,这里的解决方案对我有用!我不确定它是否正确!
var newpolygons =[];
google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
coordinates = (polygon.getPath().getArray());
newpolygons.push(coordinates);
});
答案 1 :(得分:0)
由于从api获得的是一个数组,因此无需推送到另一个数组
google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
coordinates = (polygon.getPath().getArray());
console.log(coordinates);
for (var i = 0; i < coordinates.length; i++) {
lat = coordinates[i].lat();
lng = coordinates[i].lng();
console.log(lat);
console.log(lng);
}
});