5

ポリラインとポリゴンの両方の緯度座標を取得しようとしています。いずれかのオブジェクトの描画が完了したら、latlngをデータベースに保存したいのですが、今のところ、latlngをテキストエリアに表示しようとしているだけです。マーカー、長方形、円についてはこれを簡単に行うことができましたが、ポリラインとポリゴンの用語は私を困惑させています。描画が完了すると、ポリゴンにaddDomListener(drawingManager、'polygoncomplete'、...)を使用して、描画したすべてのポリゴンを反復処理します。次に、ポリゴンごとに、座標の配列を反復処理します。このフォーラムデータベースを検索しました。 Googleのドキュメントページでバミューダトライアングルの例を試してみました。 バミューダの例 私は何度もドキュメントを読みましたが、何が欠けているのかわかりません。どんな助けでも大歓迎です。

//Save polygons data to text area
                var polygons = [];

                google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon) {
                  polygons.push(polygon);
                });

                google.maps.event.addDomListener(savebutton, 'click', function() {
                    document.getElementById("savedatapolygon").value = "";
                    for (var i = 0; i < polygons.length; i++) {
                      var polygonBounds = polygons[i].getPath();
                      var xy;
                        // Iterate over the polygonBounds vertices.
                        for (var i = 0; i < polygonBounds.length; i++) {
                            xy = polygonBounds.getAt(i);
                            contentString += '<br>' + 'Coordinate: ' + i + '<br>' + xy.lat() +',' + xy.lng();
                        }
                      document.getElementById("savedatapolygon").value += "polygon(";
                      document.getElementById("savedatapolygon").value += contentString;
                      document.getElementById("savedatapolygon").value += ")";

                    }
        });
4

1 に答える 1

19

GoogleMapsPolygonクラスはMVCArray返します。MVCArrayforEachのメソッドを使用してループする必要があります。

var polygonBounds = polygons[i].getPath();
// Iterate over the polygonBounds vertices.
polygonBounds.forEach(function(xy, i) {
  contentString += '<br>' + 'Coordinate: ' + i + '<br>' + xy.lat() +',' + xy.lng();
});
document.getElementById("savedatapolygon").value += "polygon(";
document.getElementById("savedatapolygon").value += contentString;
document.getElementById("savedatapolygon").value += ")";
于 2013-02-19T21:53:23.650 に答える