Leaflet: getLatLngs usado con polygon no devuelve matriz

Creado en 23 dic. 2016  ·  4Comentarios  ·  Fuente: Leaflet/Leaflet

Como reproducir

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

Qué comportamiento estoy esperando y qué comportamiento estoy viendo

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.

Ejemplo mínimo que reproduce el problema.

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.

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 use polygon.getLatLngs()[0] para obtener los LatLng s del anillo exterior (y único).

Todos 4 comentarios

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[] ?

¿Fue útil esta página
0 / 5 - 0 calificaciones