5

我有这个 DrawingManager 对象:

    drawingManager = new google.maps.drawing.DrawingManager({
      drawingMode: google.maps.drawing.OverlayType.POLYGON,
      markerOptions: {
        draggable: true
      },
      polylineOptions: {
        editable: true
      },
      polygonOptions: polyOptions,
      map: map
    });

当多边形完成时,我得到他们的坐标:

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

但是,如果我使用 DrawingManager 更改多边形,显然形状会改变,可能会添加更多点。
那么在修改后如何获取所有点及其坐标,例如单击按钮完成编辑?提前致谢。

4

2 回答 2

13

好的,我的第二个代码有答案:

var coordinates = (polygon.getPath().getArray());

最后,我通过添加一个侦听器来调用获取数组的函数,从而获得了最后一个带有坐标的数组来调用此代码:

JS

function getCoordinates() {
    console.log(polygon.getPath().getArray());
}

google.maps.event.addDomListener(document.getElementById('CoordsButton'), 'click', getCoordinates);

HTML

<button id="CoordsButton">Coordinates</button>

然后,当现在单击按钮时,我得到了坐标...

不管怎么说,还是要谢谢你

于 2013-01-18T23:19:42.460 回答
0

这是我们使用事件侦听器使用 for 循环传递多边形坐标的解决方案

google.maps.event.addListener(testMap, 'polygoncomplete', function (polygon) {
    var coordinates = (polygon.getPath());
    console.log(coordinates);

for (let i = 0; i < coordinates.getLength(); i++) 
 {
   const xy = coordinates.getAt(i);
   var contentString = console.log(JSON.stringify({point: xy +[i+1]}))
 }
于 2021-10-20T02:24:08.890 回答