Leaflet: getLatLng yang digunakan dengan poligon tidak mengembalikan array

Dibuat pada 23 Des 2016  ·  4Komentar  ·  Sumber: Leaflet/Leaflet

Cara memperbanyak

Versi selebaran yang saya gunakan: 1.0.2
Browser (dengan versi) Saya menggunakan: Chrome & FF
OS/Platform (dengan versi) Saya menggunakan: Windows 10

Perilaku apa yang saya harapkan dan perilaku apa yang saya lihat

getLatLngs yang digunakan dengan poligon tidak mengembalikan array, tetapi LatLngs sebagai string. Jika digunakan dengan array polyline dari LatLng dikembalikan. Ini bekerja dengan baik dengan versi 0.7.7.

Contoh minimal mereproduksi masalah

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

Menggunakan http://playground-leaflet.rhcloud.com/ atau situs serupa jsfiddle lainnya.

Komentar yang paling membantu

Nilai kembalian L.Polygon.getLatLngs() sebenarnya adalah array dari satu elemen.

Ini dilakukan di https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 sejak https://github.com/Leaflet/Leaflet/pull/3279 , untuk memastikan bahwa ada daftar dering, bukan daftar LatLng s. Cukup gunakan polygon.getLatLngs()[0] untuk mendapatkan LatLng s dari cincin luar (dan satu-satunya).

Semua 4 komentar

jsfiddle ada di sini https://jsfiddle.net/qccxwp64/2/

Nilai kembalian L.Polygon.getLatLngs() sebenarnya adalah array dari satu elemen.

Ini dilakukan di https://github.com/Leaflet/Leaflet/blob/b1c2e99c1faf5d7a518a3260c22eb920a7512945/src/layer/vector/Polygon.js#L106 sejak https://github.com/Leaflet/Leaflet/pull/3279 , untuk memastikan bahwa ada daftar dering, bukan daftar LatLng s. Cukup gunakan polygon.getLatLngs()[0] untuk mendapatkan LatLng s dari cincin luar (dan satu-satunya).

Ini menjelaskan semuanya, terima kasih banyak!

Bukankah seharusnya dokumentasi resmi http://leafletjs.com/reference-1.0.3.html#polyline -getlatlngs diubah untuk menunjukkan sesuatu selain LatLng[] ?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat