我正在尝试显示 .mbtiles 图层(由蒂佩卡诺 https://github.com/mapbox/tippecanoe)在传单地图中。瓷砖上装有Leaflet.TileLayer.MBTiles https://gitlab.com/IvanSanchez/Leaflet.TileLayer.MBTiles。到目前为止,地图上看不到任何东西,尽管 MBTiles 加载良好并且可以在浏览器的检查器控制台中识别。我猜测,因为我没有使用 MapBox Studio(或类似的)对 MBTiles 进行外部样式设置,所以它们没有分配任何样式(颜色、大小等...)。
是否可以使用 CSS、JS 或 html 中的其他方式设置 .mbtiles 的样式?我发现 .mbtiles 通常有一个关联的 style.json 文件——是否可以编写我自己的文件并在 html 或 javascript 中调用该文件以实现 Leaflet?
这是我的代码的相关部分:
var map = L.map('map', {layers: [ESRIOceanBaseMap]}).setView([33.985, -120.25], 12);
var mb = L.tileLayer.mbTiles('https://raw.githubusercontent.com/evantdailey/map_testing/master/2016668FA.mbtiles', {
type: 'circle',
minZoom: 0,
maxZoom:25
}).addTo(map);
我希望在 CSS 中做这样的事情(似乎不起作用):
#mb {
color: black
}
如果以上都不可行,是否有其他方法可以为 Leaflet 设置 MBTiles 样式,而无需通过 MapBox Studio 并为每个图层分配样式?目标是以编程方式创建多个层(每个层包含数千个点),因此单独设计和导出每个层并不理想。
MBTiles https://github.com/mapbox/mbtiles-spec格式可用于vector or raster数据。对于由 Tippecanoe 创建的 MBTiles 集,它包含vector data.
尽管可能没有明确编写,但 Leaflet.TileLayer.MBTiles 插件仅处理raster瓷砖(PNG 或 JPG)(截至今天)。
渲染vector数据(使您能够在运行时设置其样式),您应该看看Leaflet.VectorGrid https://github.com/Leaflet/Leaflet.VectorGrid插入。不幸的是,它目前不能与矢量 MBTiles 设置一起开箱即用。
如果您有兴趣,可以看看https://github.com/Leaflet/Leaflet.VectorGrid/issues/54 https://github.com/Leaflet/Leaflet.VectorGrid/issues/54
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)