问题标签 [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.

0 投票
0 回答
174 浏览

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 时这样做?

0 投票
0 回答
22 浏览

mapbox - 在离线模式下运行 mapbox tileserver-gl?

我在一个项目的基础上使用 mapbox 库已经有一段时间了。我需要在不依赖互联网的情况下部署地图。在这种情况下,我设置了一个 ubuntu 环境并在其上安装了“tileserver-gl”。我有以下

  • mbtiles 文件
  • 配置文件
  • 样式.json

我可以使用带有互联网的 docker 运行它,在“在线/离线模式”中轻松查看具有基本样式的国家地图。但我需要以卫星样式部署它,但相关的 style.json 文件中有许多https 链接,并从互联网上下载了一些文件。

样式.json

你能帮忙解决这个问题吗?

感谢和问候

0 投票
0 回答
10 浏览

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,则执行该选项。