问题标签 [tileserver-gl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - 尝试运行使用 react-leaflet 显示的本地 tileserver 地图时出现跨域读取阻塞
我无法让react-leaflet显示来自本地maptiler服务器的地图。但是,我可以获得以下显示 maptiler 地图的简单传单代码:
对于 react-leaflet 等效项,我尝试了以下所有 url,所有这些都只显示一个空地图
但是,我可以在没有 React 或传单脚本的情况下直接访问这些 URL 中的任何一个,它们都可以按预期工作。
在我使用 nginx 的情况下,我只是代理
所以问题似乎出在 react-leaflet 上。在开发控制台中,所有 URL 都会给我一个 CORB 警告:
很长一段时间以来,我认为这是一个 CORS 问题,因此 nginx 带有标头,并且感到困惑,因为tileserver响应Access-Control-Allow-Origin: *
中的标头确实有。
我曾尝试使用 nginx 添加一个Cross-Origin-Resource-Policy: cross-origin
但没有成功。我认为它需要添加到响应标头中,我不确定如何使用 maptiler/tileServer-gl 的容器化版本来完成。
我也想知道这是否是红鲱鱼,因为文档确实说:
在大多数情况下,被阻止的响应不应影响网页的行为,并且可以安全地忽略 CORB 错误消息。~来源
我还可以添加crossOrigin={true}
到 TileLayer 组件,在使用直接 URL 的情况下可以消除 CORB 警告。但是,问题仍然存在,地图是灰色的。在 dev-tools 网络选项卡中,没有从 tileserver 检索任何内容,但也没有任何错误。
那么 CORB 会阻止请求吗?为什么当我使用 react 作为前端而不是当我使用 vanilla JS 时这样做?
mapbox - 在离线模式下运行 mapbox tileserver-gl?
我在一个项目的基础上使用 mapbox 库已经有一段时间了。我需要在不依赖互联网的情况下部署地图。在这种情况下,我设置了一个 ubuntu 环境并在其上安装了“tileserver-gl”。我有以下
- mbtiles 文件
- 配置文件
- 样式.json
我可以使用带有互联网的 docker 运行它,在“在线/离线模式”中轻松查看具有基本样式的国家地图。但我需要以卫星样式部署它,但相关的 style.json 文件中有许多https 链接,并从互联网上下载了一些文件。
你能帮忙解决这个问题吗?
感谢和问候
docker-compose - tileserver-gl:自定义配置文件 docker-compose
我正在尝试docker-compose
使用个性化config.json
文件将 Tileserver GL 容器包含到我现有的 中。这是相关部分docker-compose.yml
文件data
夹结构
运行文件时docker-compose up
会-c my_config.json
被忽略。但是,如果我只是简单地运行它docker run -it -v $(pwd)/Tile_server/data:/data -p 8081:80 maptiler/tileserver-gl -c my_config.json
,甚至奇怪的是,如果我--verbose
用作command
实例而不是-c my_config.json
,则执行该选项。