¿Hay alguna manera de establecer la opacidad de solo los mosaicos usando el folleto y OpenStreetMap? Quiero que el mapa tenga un 50 % de opacidad, pero que los marcadores mantengan un 100 % de opacidad.
Establecer la opacidad de esta manera no funciona:
var bkgLayer = L.tileLayer.grayscale('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'); var map = new L.Map("map", { center: new L.LatLng(-31.4, 50.9), scrollWheelZoom: false, zoomControl: false, zoom: 5, opacity: 0.5, layers: bkgLayer });La capa de mosaico de folleto normal (capa de cuadrícula) tiene la opción de opacity .
https://leafletjs.com/reference-1.7.1.html#gridlayer-opacity
En su caso, está utilizando una capa de mosaico especial con el complemento Leaflet.TileLayer.Grayscale .
Sin embargo, extiende correctamente el comportamiento normal de la capa de mosaico y su código no parece hacerlo incompatible con la opción de opacity . Por lo tanto, simplemente debería funcionar:
var bkgLayer = L.tileLayer.grayscale('urlTemplate', { opacity: 0.75 });Puede usar document.querySelector para acceder al panel de mosaico del folleto y establecer la opacidad a través del estilo:
const element = document.querySelector( '.leaflet-tile-pane' ).style.opacity = 0.5;Aquí hay una demostración que armé en StackBlitz que muestra cómo usar Leaflet-Slider para ajustar la opacidad de la capa de mosaico sin alterar los marcadores.