如何解决在 Tileserver-gl-light 中的卫星栅格顶部显示国家边界以在 Plotly Mapboxes 中使用?
我已在本地启动并运行 tileserver-gl-light,并且已成功托管 satellite_low_res.mbtiles。
不幸的是,我被要求在栅格顶部以“青色”覆盖国家边界和海岸线。
一个快速的谷歌搜索出现了 tippecanoe 将 GeoJSON 数据转换为 .mbtiles 格式,这样我就可以创建一个新的 tileserver 来托管新的 mbtiles。我找到的 GeoJSON 文件是 here。
我将 GeoJSON 保存为 border.GeoJSON 并运行以下 tippecanoe 命令以转换为 .mbtiles
tippecanoe --minimum-zoom=0 -z10 -o borders.mbtiles borders.GeoJSON
但是,每当我尝试使用 maptiler-desktop 查看矢量切片 [borders.mbtiles] 时,它清楚地告诉我 border.mbtiles 中没有可用的矢量数据。
我使用 podman 运行带有各自 .mbtiles 的 docker 容器。
sudo podman -it -v $(pwd):/data:z -p 8008:80 maptile_server --mbtiles satellite_low_res.mbtiles
sudo podman -it -v $(pwd):/data:z -p 8081:80 maptile_server --mbtiles borders.mbtiles
每当我访问 localhost:8081 时,我都可以看到 tileserver 正在运行,但同样,没有要预览的矢量切片。 如何获得 tileserver-gl-light 期望的正确格式?
还要引入 Plotly 库。
我可以制作一个简单的地图框图,如下所示。 [这适用于卫星低分辨率]
import plotly.graph_objects as go
figure = go.figure()
trace = go.MapBox(lat=[10,20,30],lon=[10,mode='markers')
figure.update_layout(mapBox_style='white-bg',mapBox_layers=[{'below':'traces','sourcetype':'raster','source':['http://127.0.0.1:8080/data/openmaptiles_satellite_lowres/{z}/{x}/{y}.jpg']}])
figure.show(renderer='browser')
我想要做的是为 maBox_layers kwarg 中的边框添加另一个图层。我尝试了以下方法:
import plotly.graph_objects as go
figure = go.figure()
trace = go.MapBox(lat=[10,'source':['http://127.0.0.1:8080/data/openmaptiles_satellite_lowres/{z}/{x}/{y}.jpg']},{'below':'traces','sourcetype':'vector','source':['http://127.0.0.1:8081/data/borders/{z}/{x}/{y}.pbf']}])
figure.show(renderer='browser')
然而,这不起作用。
有谁知道怎么做:
提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。