Leaflet: ポリゴンで使用されるgetLatLngsは配列を返しません

作成日 2016年12月23日  ·  4コメント  ·  ソース: Leaflet/Leaflet

再現する方法

私が使用しているリーフレットバージョン: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のようなサイトを使用します。

最も参考になるコメント

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を取得します。

全てのコメント4件

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[]以外のものを示すべきではありませんか?

このページは役に立ちましたか?
0 / 5 - 0 評価