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 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.
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?