如何在Map中获取所有新创建多边形的坐标

时间:2014-03-06 18:00:56

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

我正试图在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);
});

但是你可以看到代码只返回新完成的多边形坐标。你能告诉我如何从所有创建的多边形中获取坐标,从开始绘图到创建一个多边形(自enter image description here按钮点击)到点击Coordinates按钮?

有没有办法可以为每个创建的Polygon关联数字?与Polygon No1 {..

一样

更新


我将全局数组声明为:

var newpolygons =[];

并将代码更新为:

google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
  coordinates = (polygon.getPath().getArray());
  console.log(coordinates);
  newpolygons.push(coordinates);
 });

现在可以告诉我如何取回它们吗?

2 个答案:

答案 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);

}

});