5

私はこの DrawingManager オブジェクトを持っています:

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

Polygon が完成したら、次のように座標を取得します。

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

しかし、DrawingManager を使用してポリゴンを変更すると、明らかに形状が変更され、ポイントが追加される可能性があります。
次に、変更後にすべてのポイントを座標とともに取得し、たとえばボタンをクリックして編集を終了するにはどうすればよいですか?? 前もって感謝します。

4

2 に答える 2

13

私の2番目のコードに答えがあります:

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 に答える