Versão do folheto que estou usando: 1.0.2
Navegador (com versão) que estou usando: Chrome e FF
SO / plataforma (com versão) que estou usando: Windows 10
getLatLngs usado com polígono não retorna matriz, mas LatLngs como string. Se usado com a matriz de polilinha de LatLng, é retornado. Isso funcionou bem com a versão 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/ ou qualquer outro site semelhante ao jsfiddle.
jsfiddle está aqui https://jsfiddle.net/qccxwp64/2/
O valor de retorno de L.Polygon.getLatLngs()
é, na verdade, uma matriz de um elemento.
Isso é feito em https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 desde https://github.com/Leaflet/Leaflet/pull/3279 , para garantir que existe uma lista de anéis, não uma lista de LatLng
s. Simplesmente use polygon.getLatLngs()[0]
para obter os LatLng
s do anel externo (e único).
Isso explica tudo, muito obrigado!
A documentação oficial http://leafletjs.com/reference-1.0.3.html#polyline -getlatlngs não deveria ser alterada para indicar algo diferente de LatLng[]
?
Comentários muito úteis
O valor de retorno de
L.Polygon.getLatLngs()
é, na verdade, uma matriz de um elemento.Isso é feito em https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 desde https://github.com/Leaflet/Leaflet/pull/3279 , para garantir que existe uma lista de anéis, não uma lista de
LatLng
s. Simplesmente usepolygon.getLatLngs()[0]
para obter osLatLng
s do anel externo (e único).