Jawaban:
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 grayscale
layer untuk streets
layer tersebut. Ini mengasumsikan bahwa keduanya grayscale
dan streets
tersedia dalam lingkup fungsi di mana Anda melakukan peralihan.
map.removeLayer(grayscale);
map.addLayer(streets);
3) Jika Anda menggunakan kontrol lapisan yang L.control.layers
ditunjukkan dalam contoh, maka kontrol melacak apa yang ada di peta, dan mengubah kotak centang yang sesuai.
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
.
mapboxUrl
&mapboxAttribution
?