Versión de folleto que estoy usando: 1.0.2
Navegador (con versión) que estoy usando: Chrome y FF
SO / Plataforma (con versión) Estoy usando: Windows 10
getLatLngs usado con polygon no devuelve matriz, pero LatLngs como cadena. Si se usa con una matriz de polilínea de LatLng, se devuelve. Esto funcionó bien con la versión 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);
Usando http://playground-leaflet.rhcloud.com/ o cualquier otro sitio similar a jsfiddle.
jsfiddle está aquí https://jsfiddle.net/qccxwp64/2/
El valor de retorno de L.Polygon.getLatLngs()
es, de hecho, una matriz de un elemento.
Esto se hace en https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 desde https://github.com/Leaflet/Leaflet/pull/3279 que hay una lista de anillos, no una lista de LatLng
s. Simplemente use polygon.getLatLngs()[0]
para obtener los LatLng
s del anillo exterior (y único).
Esto lo explica todo, ¡muchas gracias!
¿No debería cambiarse la documentación oficial http://leafletjs.com/reference-1.0.3.html#polyline -getlatlngs para indicar algo más que LatLng[]
?
Comentario más útil
El valor de retorno de
L.Polygon.getLatLngs()
es, de hecho, una matriz de un elemento.Esto se hace en https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 desde https://github.com/Leaflet/Leaflet/pull/3279 que hay una lista de anillos, no una lista de
LatLng
s. Simplemente usepolygon.getLatLngs()[0]
para obtener losLatLng
s del anillo exterior (y único).