私はすでにここでこの質問を数回見ましたが、回答は私の場合にはまったく当てはまりません。
google.maps.Polygonオブジェクトを使用して、地図上に描画された境界を保存しています。
後で「getPath」メソッドを使用して、これをJson文字列に追加します。
JSON文字列は常に異なります。時々私はポリゴンの角をつかむことができます:
thisShape.data.b [i] .kb thisShape.data.b [i] .lb
他の時間によって
thisShape.data.b [i] .Qa thisShape.data.b [i] .Ra
等
時間の経過とともに、Json文字列のキーが変化するようです。ただし、Polygonオブジェクトに関する限り、GoogleApiが返すものについては責任を負いません。
キーを知らなくても、経度と緯度を取得する方法はありますか?数週間で壊れることを恐れずにポリゴンをループする方法はありますか?
どうもありがとう
「SavePolygonData」というメソッドがあり、特に次のようなJson文字列を作成するとします。
var allData = {};
$("div.shapes").each(function(){
var id = $(this).attr("id");
var type = id.split('_')[0];
var feature = MapToolbar.features[type+'Tab'][id];
var vertices = feature.getPath();
allData[id] = { color: feature.fillColor, data: vertices};
});
var allDataJson = JSON.stringify(allData);
その後、次のような別の場所でjson文字列を読み取る別のメソッド:
for (var polyId in allData) {
if (allData.hasOwnProperty(polyId)) {
var thisShape = allData[polyId];
var color = thisShape.color;
var vertices=new Array();
for ( var i=0; i<thisShape.data.b.length; ++i )
{
var coordX = thisShape.data.b[i].kb; //Problem here
var coordY = thisShape.data.b[i].lb; //Problem here
var point = new google.maps.LatLng(coordX, coordY);
vertices[i] = point;
}
var poly = new google.maps.Polygon({
strokeWeight: 2,
fillColor: color,
paths: vertices
});
poly.setMap(map);
}
明らかに文字列しか含まれていないため、json文字列でgetLat()メソッドを使用することはできません。代わりに、feature.getPath()の代わりに処理されたデータを含む「data」変数の新しいデータ構造を作成する必要があります。
それは私が助けを必要としているものです。その新しいデータ構造の構造は何ですか?
google.maps.geometry.encoding.encodePath()メソッドがあることに気づきました。ただし、サーバー側でデコードできる必要があります。