OpenStreetMap 瓦片不透明度
OpenStreetMap tile opacity
有没有办法使用传单和 OpenStreetMap 设置图块的不透明度?
我希望地图具有 50% 的不透明度,但在标记上保持 100% 的不透明度。
像这样设置不透明度,不起作用:
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
});
您可以使用 document.querySelector
访问 Leaflet 磁贴窗格并通过样式设置不透明度:
const element = document.querySelector(
'.leaflet-tile-pane'
).style.opacity = 0.5;
Here is a demo I put together on StackBlitz showing how to use Leaflet-Slider 在不改变标记的情况下调整图块图层的不透明度。
普通 Leaflet 图块层(网格层)有 opacity
选项。
https://leafletjs.com/reference-1.7.1.html#gridlayer-opacity
在您的情况下,您使用的是带有 Leaflet.TileLayer.Grayscale 插件的特殊 Tile Layer。
但是它正确地扩展了正常的 Tile Layer 行为,并且它的代码似乎并没有使其与 opacity
选项不兼容。因此它应该简单地工作:
var bkgLayer = L.tileLayer.grayscale('urlTemplate', {
opacity: 0.75
});
有没有办法使用传单和 OpenStreetMap 设置图块的不透明度? 我希望地图具有 50% 的不透明度,但在标记上保持 100% 的不透明度。
像这样设置不透明度,不起作用:
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
});
您可以使用 document.querySelector
访问 Leaflet 磁贴窗格并通过样式设置不透明度:
const element = document.querySelector(
'.leaflet-tile-pane'
).style.opacity = 0.5;
Here is a demo I put together on StackBlitz showing how to use Leaflet-Slider 在不改变标记的情况下调整图块图层的不透明度。
普通 Leaflet 图块层(网格层)有 opacity
选项。
https://leafletjs.com/reference-1.7.1.html#gridlayer-opacity
在您的情况下,您使用的是带有 Leaflet.TileLayer.Grayscale 插件的特殊 Tile Layer。
但是它正确地扩展了正常的 Tile Layer 行为,并且它的代码似乎并没有使其与 opacity
选项不兼容。因此它应该简单地工作:
var bkgLayer = L.tileLayer.grayscale('urlTemplate', {
opacity: 0.75
});