私はGoogleマップ描画ツールv3をいじっています。ユーザーが新しいポリゴンを作成した場合、この例を使用してポリゴンの位置を追跡できるようにしました。
getpaths() ポリゴン Google マップ API
コード:
var ポリゴン = [];
google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function (polygon) {
polygons.push(polygon);
console.log("polygon complete");
});
google.maps.event.addDomListener(savebutton, 'click', function () {
document.getElementById("savedatapolygon").value = "";
console.log(polygons.length);
for (var i = 0; i < polygons.length; i++) {
var polygonBounds = polygons[i].getPath();
// Iterate over the polygonBounds vertices.
var PolyNum = i
console.log(PolyNum);
polygonBounds.forEach(function (xy, i) {
console.log('Coordinate: ' + PolyNum + ':' + i + '<br>' + xy.lat() + ',' + xy.lng());
});
}
});
これは、ユーザーが Polygon を作成する場合には問題ありませんが、Polygon を削除するとどうなるでしょうか? データは引き続き配列に格納されます。ユーザーが保存をクリックしたときに、削除された配列を追跡したり、最後にすべての形状を反復処理したりする方法が見つからないようです。コンソールを見ると、__gm_id: と呼ばれる各形状に割り当てられた一意の ID がある可能性があることがわかりますが、これが追跡する最善の方法であるかどうかはわかりません。
もう 1 つの奇妙な点は、シェイプを編集すると、コードにそうすべきであるという記述がなくても、これらの変更が何らかの形でポリゴン配列に更新されることです。