私が使用しているリーフレットバージョン:1.0.2
使用しているブラウザ(バージョンあり):ChromeとFF
使用しているOS /プラットフォーム(バージョンあり):Windows 10
ポリゴンで使用されるgetLatLngsは配列を返しませんが、LatLngsを文字列として返します。 LatLngのポリライン配列とともに使用すると、返されます。 これは0.7.7バージョンで正常に機能しました。
var latlngs = [
[45.51, -122.68],
[37.77, -122.43],
[34.04, -118.2]
];
var polyline = L.polyline(latlngs, {color: 'red'}).addTo(map);
alert(polyline.getLatLngs().length);
var polygon = L.polygon([
[51.509, -0.08],
[51.503, -0.06],
[51.51, -0.047]
]).addTo(map);
alert(polygon.getLatLngs().length);
http://playground-leaflet.rhcloud.com/または他のjsfiddleのようなサイトを使用します。
jsfiddleはこちらhttps://jsfiddle.net/qccxwp64/2/
L.Polygon.getLatLngs()
の戻り値は、実際には1つの要素の配列です。
これは、 https://github.com/Leaflet/Leaflet/pull/3279以降、 https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106で実行されます。 LatLng
のリストではなく、リングのリストがあること。 polygon.getLatLngs()[0]
を使用して、外側の(そして唯一の)リングのLatLng
を取得します。
これはすべてを説明します、どうもありがとうございました!
公式ドキュメントhttp://leafletjs.com/reference-1.0.3.html#polyline-getlatlngsを変更して、 LatLng[]
以外のものを示すべきではありませんか?
最も参考になるコメント
L.Polygon.getLatLngs()
の戻り値は、実際には1つの要素の配列です。これは、 https://github.com/Leaflet/Leaflet/pull/3279以降、 https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106で実行されます。
LatLng
のリストではなく、リングのリストがあること。polygon.getLatLngs()[0]
を使用して、外側の(そして唯一の)リングのLatLng
を取得します。