Ответы:
Этот урок служит хорошим примером:
1) Как показано в примере, настройте базовые слои с именем переменной, к которому можно получить доступ в функции, где вы хотите переключать их программно.
var grayscale = L.tileLayer(mapboxUrl, {id: 'MapID', attribution: mapboxAttribution}),
streets = L.tileLayer(mapboxUrl, {id: 'MapID', attribution: mapboxAttribution});
2) Затем добавьте и удалите слои, которые вы хотите добавить или удалить. Следующее меняет grayscale
слой на streets
слой. Это предполагает, что оба grayscale
и streets
доступны в рамках функции, где вы делаете переключение.
map.removeLayer(grayscale);
map.addLayer(streets);
3) Если вы используете элемент управления слоями, L.control.layers
показанный в примере, этот элемент управления отслеживает, что находится на карте, и соответственно изменяет флажки.
С /programming//a/33762133/4355695
Обычно, просто добавляя слой на карту (например, myTileLayer.addTo (map)), если этот слой является частью базовых слоев или оверлеев Layers Control, последний автоматически обновит свой статус (если вы добавили базовый слой, переключатели будут выбраны соответственно; для наложения будет установлен соответствующий флажок).
Я попытался, и это сработало: мне не нужно беспокоиться об удалении текущего базового слоя (или с выяснением, какой из них активен в этом отношении). Просто myTileLayer.addTo(map)
выполняет свою работу: если она уже является частью моих базовых слоев, то карта «переключается» на нее. Он автоматически удаляет текущий слой и изменяется на myTileLayer
.
mapboxUrl
&mapboxAttribution
?