Tengo varias capas base y necesito cambiarlas mediante programación, dependiendo de varias acciones y estados en mi aplicación. No puedo encontrar cómo, por la vida de mí.
12
Este tutorial sirve como un buen ejemplo:
1) Como se muestra en el ejemplo, configure sus capas base con un nombre de variable al que se pueda acceder en la función donde desea cambiarlas mediante programación.
var grayscale = L.tileLayer(mapboxUrl, {id: 'MapID', attribution: mapboxAttribution}),
streets = L.tileLayer(mapboxUrl, {id: 'MapID', attribution: mapboxAttribution});
2) Luego agregue y elimine las capas que desea agregar o eliminar. Lo siguiente intercambia la grayscale
capa por la streets
capa. Esto supone que ambos grayscale
y streets
están disponibles dentro del alcance de la función donde está realizando el cambio.
map.removeLayer(grayscale);
map.addLayer(streets);
3) Si está utilizando el control de capas que se L.control.layers
muestra en el ejemplo, el control realiza un seguimiento de lo que está en el mapa y cambia las casillas de verificación en consecuencia.
mapboxUrl
ymapboxAttribution
?Desde /programming//a/33762133/4355695
Lo intenté y funcionó: no necesito molestarme en quitar la capa base actual (o en averiguar cuál está activa para ese asunto). Simplemente
myTileLayer.addTo(map)
hace el trabajo: si ya es parte de mis capas base, entonces el mapa "cambia" a él. Elimina automáticamente la capa actual y cambia amyTileLayer
.fuente