Broschürenversion, die ich verwende: 1.0.2
Browser (mit Version) Ich verwende: Chrome & FF
Betriebssystem/Plattform (mit Version) Ich verwende: Windows 10
getLatLngs, das mit Polygon verwendet wird, gibt kein Array zurück, sondern LatLngs als String. Bei Verwendung mit Polyline-Array von LatLng wird zurückgegeben. Dies funktionierte gut mit Version 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);
Verwenden Sie http://playground-leaflet.rhcloud.com/ oder eine andere jsfiddle-ähnliche Site.
jsfiddle ist hier https://jsfiddle.net/qccxwp64/2/
Der Rückgabewert von L.Polygon.getLatLngs()
ist tatsächlich ein Array mit einem Element.
Dies geschieht in https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 seit https://github.com/Leaflet/Leaflet/pull/3279 , um sicherzustellen dass es eine Liste von Ringen gibt, keine Liste von LatLng
s. Verwenden Sie einfach polygon.getLatLngs()[0]
, um die LatLng
s des äußeren (und einzigen) Rings zu erhalten.
Das erklärt alles, vielen Dank!
Sollte die offizielle Dokumentation http://leafletjs.com/reference-1.0.3.html#polyline -getlatlngs nicht geändert werden, um etwas anderes als LatLng[]
anzugeben?
Hilfreichster Kommentar
Der Rückgabewert von
L.Polygon.getLatLngs()
ist tatsächlich ein Array mit einem Element.Dies geschieht in https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 seit https://github.com/Leaflet/Leaflet/pull/3279 , um sicherzustellen dass es eine Liste von Ringen gibt, keine Liste von
LatLng
s. Verwenden Sie einfachpolygon.getLatLngs()[0]
, um dieLatLng
s des äußeren (und einzigen) Rings zu erhalten.