У меня есть несколько базовых слоев, и мне нужно переключать их программно, в зависимости от различных действий и состояний в моем приложении. Не могу найти как, для жизни меня.
12
Этот урок служит хорошим примером:
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
показанный в примере, этот элемент управления отслеживает, что находится на карте, и соответственно изменяет флажки.
mapboxUrl
&mapboxAttribution
?С /programming//a/33762133/4355695
Я попытался, и это сработало: мне не нужно беспокоиться об удалении текущего базового слоя (или с выяснением, какой из них активен в этом отношении). Просто
myTileLayer.addTo(map)
выполняет свою работу: если она уже является частью моих базовых слоев, то карта «переключается» на нее. Он автоматически удаляет текущий слой и изменяется наmyTileLayer
.источник