首页 > 解决方案 > OpenStreetMap 平铺不透明度

问题描述

有没有办法使用传单和 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
              }); 

标签: javascripthtmlleafletopenstreetmap

解决方案


普通传单平铺层(网格层)有opacity选项。

https://leafletjs.com/reference-1.7.1.html#gridlayer-opacity

在您的情况下,您正在使用带有Leaflet.TileLayer.Grayscale插件的特殊平铺层。

然而,它正确地扩展了正常的 Tile Layer 行为,并且它的代码似乎并没有使它与该opacity选项不兼容。因此它应该简单地工作:

var bkgLayer = L.tileLayer.grayscale('urlTemplate', {
  opacity: 0.75
});

推荐阅读