10

次のような配列のGeoPointのリストがあります。

var coordinates = [[50.7, 6.7], [49.5, 7.0], ...]

ここで説明されencodePathているようにコードを縮小するために使用しようとすると、次のエラーが発生します。

TypeError:a.latは関数ではありません

私のコードは次のようになります。

google.maps.geometry.encoding.encodePath(coordinates)

何か案は?

4

1 に答える 1

15

ついに私は解決策を見つけました!問題は、だけでなくオブジェクトをencodePath期待することでした。google.maps.LatLngGeoPoints

上記のような配列をエンコードされた文字列に変換する関数は次のとおりです。

function encodeLatLngPolygon(array) {

var polyOptions = {
strokeColor: '#000000',
strokeOpacity: 1.0,
strokeWeight: 3
  }
  poly = new google.maps.Polyline(polyOptions);

var path = poly.getPath();

for(var i=0;i<array.length;i++) {
    var xyz = new google.maps.LatLng(parseFloat(array[i][0]).toFixed(2), parseFloat(array[i][1]).toFixed(2));
    path.push(xyz);            

}

var code = google.maps.geometry.encoding.encodePath(path)

return code;
}

toFixed、バイトを節約するために小数点以下の数値を減らします。このパラメータは削除または調整できます。

于 2012-09-11T11:52:57.880 に答える