Leaflet: getLatLngs utilisé avec un polygone ne renvoie pas de tableau

Créé le 23 déc. 2016  ·  4Commentaires  ·  Source: Leaflet/Leaflet

Comment reproduire

Version de la brochure que j'utilise : 1.0.2
Navigateur (avec version) que j'utilise : Chrome & FF
OS/Plateforme (avec version) que j'utilise : Windows 10

Quel comportement j'attends et quel comportement je vois

getLatLngs utilisé avec polygon ne renvoie pas de tableau, mais LatLngs sous forme de chaîne. S'il est utilisé avec un tableau de polylignes de LatLng est renvoyé. Cela a bien fonctionné avec la version 0.7.7.

Exemple minimal reproduisant le problème

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);

En utilisant http://playground-leaflet.rhcloud.com/ ou tout autre site similaire à jsfiddle.

Commentaire le plus utile

La valeur de retour de L.Polygon.getLatLngs() est, en fait, un tableau d'un élément.

Cela se fait dans https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 depuis https://github.com/Leaflet/Leaflet/pull/3279 , pour assurer qu'il existe une liste d'anneaux, pas une liste de LatLng s. Utilisez simplement polygon.getLatLngs()[0] pour obtenir les LatLng s de l'anneau extérieur (et unique).

Tous les 4 commentaires

La valeur de retour de L.Polygon.getLatLngs() est, en fait, un tableau d'un élément.

Cela se fait dans https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 depuis https://github.com/Leaflet/Leaflet/pull/3279 , pour assurer qu'il existe une liste d'anneaux, pas une liste de LatLng s. Utilisez simplement polygon.getLatLngs()[0] pour obtenir les LatLng s de l'anneau extérieur (et unique).

Cela explique tout, merci beaucoup !

La documentation officielle http://leafletjs.com/reference-1.0.3.html#polyline -getlatlngs ne devrait-elle pas être modifiée pour indiquer autre chose que LatLng[] ?

Cette page vous a été utile?
0 / 5 - 0 notes