问题标签 [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.
leaflet - 如何在常规 OSM 地图上覆盖卫星 mbtiles?
我正在使用klokantech tileserver gl来提供 OSM 地图。这些地图由使用 Vue 和 vue-leaflet 开发的前端使用。OSM 世界 mbtiles 文件与 klokan 的默认配置完美配合。
该系统的一个要求演变是以卫星图像的形式将数据添加到地图中。选择的解决方案(可能是一个糟糕的解决方案)是添加另一组包含卫星视图的 mbtiles(这里是一个示例)。
这个新文件将提前制作并使用 USB 密钥或类似设备传输到机器。需要注意的是,我无法在机器上访问互联网。
我想将这些卫星视图(如果可用)覆盖在我已经存在的 OSM 地图上。我尝试使用 klokan 为他们提供服务,但无法弄清楚这样做的必要配置。任何帮助将不胜感激。
干杯
mapbox - Mapbox gl native 没有渲染所有样式源,导致地图数据丢失
我们正在使用 tileserver-gl 3.0.0。我们有大约 30 个 MBTiles,并且 tileserver-gl 2.3.1 没有任何问题。我们最近升级到 tileserver-gl 3.0.0。但是当我们注意到地图数据间歇性丢失时,即缺少地图源之一。
当我们进行调试时,mapbox-gl-native 本身并没有发送源数据调用。
任何人都可以知道类似的问题,或者我们如何确定为什么 mapbox-gl-native 没有调用样式源?
tileserver-gl -3.0.0 mapbox-gl-native -5.0.2
任何帮助将不胜感激。
注意:tileserver-gl 或 mapbox-gl-native 没有抛出错误日志。
javascript - 在本地显示 mbtiles 文件
我有自定义生成的 mbtiles 文件(矢量化,而不是光栅化),我需要在本地并排显示两个这样的文件(以便直观地检查两个地图中的差异)。我尝试了几种方法,例如使用传单(作为仅显示单个 mbtiles 文件的启动器):
正如显示离线 OSM 映射文件中所建议的那样。建议:一个带有 Js.library 的 MB Tiles 文件。但是地图根本没有显示。据我了解,这是因为我有一个矢量文件而不是光栅文件,所以没有实际的 png。
其他答案表明我必须使用诸如 tileserver-gl 之类的服务器来提供地图,但所有此类服务一次只能提供一个文件。是否有某种“简单”的方法来实现我正在寻找的行为,而不涉及尝试重写 tileserver-gl?
nginx - 在 centOS 中使用 ssl 保护 tileserver-gl
我有sudo docker run -d --restart unless-stopped -it -v $(pwd):/data -p 81:80 maptiler/tileserver-gl
跑步。我可以访问http://mypage.com:81就好了。但是,我想访问https://mypage.com:81。我有一个有效的证书,但它无法使用https协议。下面是我的nginx.conf
文件。
docker - Ubuntu 20.04 上的安全 Tileserver-GL
我通过 Docker(在端口 10001 上)使用 Tileserver-GL,并通过 NGINX 的反向代理传递它。我让它工作,这样我就可以在a.cube-kokomo.com访问 tileserver-GL 的主页,但是页面上的所有链接都给我一个 404 错误。我正在使用 CertBot 来管理 SSL 证书。我的目标是能够通过安全网站 (HTTPS) 提供磁贴。
json - TileServer 的 GetCapabilities 查询返回格式错误的 JSON
我已经安装了 TileServer.php。当我导航到它时,我可以看到我的图块(所以它正在工作)。
我的问题是当我查询 getCapabilities 文件时,生成的 json 文件格式错误。
json 在 json 响应的开头以部分查询字符串为前缀。
这是完整的查询字符串:
http://<=my ip=>/tileserver/index.html?service= wmts&request =getcapabilities&version=1.0.0
我收到的实际 Json 响应
(注意wmts&request以其他有效的 json 为前缀)
====JSON================================
wmts&request ([{"name":"190322","type":"overlay","description":"190322","version":"1.1","format":"png","bounds":[174.92249449474565 ,-36.991878207885335,174.93635413927785,-36.98244705946717],"maxzoom":22,"minzoom":14,"basename":"1313_190322","profile":"mercator","scale":1,"tiles": .. .
====================================================
我已经尝试删除部分查询字符串来测试结果,奇怪的是它再次抓住了查询字符串的一部分。
这是我测试的完整查询字符串:
http://<=my ip=>/tileserver/index.html?request= getcapabilities&version =1.0.0
(我收到的实际 Json 响应)
====JSON================================
getcapabilities&version ([{"name":"190322","type":"overlay","description":"190322","version":"1.1","format":"png","bounds":[174.92249449474565 ,-36.991878207885335,174.93635413927785,-36.98244705946717],"maxzoom":22,"minzoom":14,"basename":"1313_190322","profile":"mercator","scale":1,"tiles": .. .
==================================================== =====
我想我可以解析出来,但我想找到这个问题的原因。
我正在使用 ASP.Net 5.0。
这里大致是我的代码:
编辑
哎呀!原来我以完全错误的方式从 TileServer 请求 getCapabilities 文件。
我将把它留在这里,以防将来对某人有所帮助。
这是正确的 URL:http://<= my url =>/tileserver/1.0.0/WMTSCapabilities.xml/wmts
tileserver-gl - 如何确定缩放高度以从 WMTS 服务器请求平铺
我正在设置一个 WMTS 客户端来使用来自 tileserver.php 的图块。
要请求图块,我需要将标识符/图层、缩放高度、列和行传递给 WMTS RESTful 服务器,它将返回图块。
例如 http://my ip.com/tileserver/tileserver.php?/index.json?/identifier/{z}/{x}/{y}.png
在我的测试环境中,我可以手动选择缩放级别,我的测试代码将正确计算 col(x) 和 row(y)。然后我可以使用这些信息来请求图像。
这一切都按预期工作。
但是,现在我需要锻炼如何以编程方式确定缩放高度(z)。例如,当用户放大或缩小某个区域时,我将需要锻炼适当的缩放级别,进而以接近用户期望的缩放级别从瓦片服务器请求图像。
我假设,要锻炼正确的缩放级别:
确定用户的当前边界框(这将是 cad 程序中的模型空间)。我将使用边界框来获取它们所在位置的线性宽度/高度(在 CAD 中)。
使用显示器的屏幕像素大小来锻炼每米像素?我是否朝着正确的方向前进?
谁能帮我弄清楚如何做到这一点?
mapbox - 在 NW.js 桌面程序中实现 tileserver-gl?
有什么方法可以让 tileserver-gl 在桌面程序中工作,所以当程序启动时,tile server 从它开始
javascript - Nw.js program with tileserver-gl
i have already setup tileserver-gl-light to work with my nw.js program i need to change it to tileserver-gl because the light version dose not work with the raster data only vector any idea how to do that ?
javascript - 如何在不引发 CORB 错误的情况下将 TileServer-GL 地图切片提供给 Openlayers
我需要离线运行 OpenLayers 实例。我正在尝试加载从此处下载的地图图像图块。我正在运行文档中指定的 TilerServer-GL docker 映像。我有一个简单的文件来显示OpenLayers QuickStart 文档index.html
中指定的 OpenLayers 地图。我对他们提供的唯一更改是更改 Tile Layer 源,如下所示:.html
OSM()
使用QuickStart 文档中指定的源时,此地图会按预期加载。它还加载了我找到的其他在线资源。但是,当我按照我在上面的代码中指出的那样给它提供对本地 TileServer-GL 实例的引用时,我收到以下 CORB 错误:
如何安全地访问 TileServer-GL 提供的瓦片数据?我不想禁用浏览器安全功能作为解决方法。
注意:我知道 TileServer 正在从浏览器获取请求,因为 TileServer 控制台会实时记录请求。例如:
GET /data/openmaptiles_satellite_lowres/ 200 899 - 0.704 ms
操作系统:ubuntu 20.04 LTS
节点版本:v16.5.0
OpenLayers 版本:6.6.1
编辑:
重现步骤:
- 将OpenLayers QuickStart中的简单入门 html 复制到名为
index.html
. - 将 TileLayer 源代码替换为我在上面发布的代码
- 下载一些mbtiles,例如,这些
- 将 .mbtiles 文件移动到与
index.html
- 安装 docker(如果需要)
- 跑
docker pull maptiler/tileserver-gl
index.html
在与run相同的目录中docker run --rm -it -v $(pwd):/data -p 8080:80 maptiler/tileserver-gl
(注意:如果您在 Windows 上,则需要使用${pwd}
,而不是$(pwd)
。如果您的文件夹名称中包含空格字符,Docker 可能会引发警告。)- 在浏览器中加载 index.html(IE 不算)。
多田!你(几乎)有一个工作的离线地图应用程序!