Cara beralih lapisan dasar secara terprogram di MapBox / Leaflet


12

Saya memiliki beberapa lapisan dasar, dan perlu mengubahnya secara terprogram, tergantung pada berbagai tindakan dan status dalam aplikasi saya. Tidak dapat menemukan bagaimana, untuk kehidupan saya.

Jawaban:


16

Tutorial ini berfungsi sebagai contoh yang baik:

1) Seperti ditunjukkan dalam contoh, atur layer dasar Anda dengan nama variabel yang dapat diakses di fungsi di mana Anda ingin mengubahnya secara terprogram.

var grayscale = L.tileLayer(mapboxUrl, {id: 'MapID', attribution: mapboxAttribution}),
    streets   = L.tileLayer(mapboxUrl, {id: 'MapID', attribution: mapboxAttribution});

2) Kemudian tambahkan dan hapus layer yang ingin Anda tambahkan atau hapus. Berikut ini swap grayscalelayer untuk streetslayer tersebut. Ini mengasumsikan bahwa keduanya grayscaledan streetstersedia dalam lingkup fungsi di mana Anda melakukan peralihan.

map.removeLayer(grayscale);
map.addLayer(streets);

3) Jika Anda menggunakan kontrol lapisan yang L.control.layersditunjukkan dalam contoh, maka kontrol melacak apa yang ada di peta, dan mengubah kotak centang yang sesuai.


Di mana mapboxUrl& mapboxAttribution?
Mohammad Dayyan

@MohammadDayyan Anda perlu merujuk ke tutorial yang tertaut di atas
tom

0

Dari /programming//a/33762133/4355695

Biasanya dengan hanya menambahkan lapisan ke peta (misalnya myTileLayer.addTo (peta)), jika lapisan itu adalah bagian dari lapisan dasar atau lapisan dari Kontrol Lapisan, yang terakhir akan secara otomatis memperbarui statusnya (jika Anda menambahkan lapisan dasar, tombol radio akan dipilih sesuai; untuk overlay, kotak centang yang sesuai akan dicentang).

Saya mencoba dan itu berhasil: Saya tidak perlu repot-repot menghapus baselayer saat ini (atau dengan mencari tahu mana yang aktif dalam hal ini). myTileLayer.addTo(map)Kerjanya saja : Jika sudah menjadi bagian dari baselayer saya, maka peta "beralih" ke sana. Secara otomatis menghapus lapisan saat ini dan berubah menjadi myTileLayer.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.