Mapbox - 无效的图块顺序
Mapbox - invalid tile order
我在自己的磁贴服务器上工作。我在以正确的顺序显示图块时遇到奇怪的问题。瓦片是使用 OSM 数据创建的。
当我将 tileserver-gl-light 用作图块服务器时,一切似乎都正常,但是当我尝试通过我自己的服务器提供图块时,它们在缩放后不会以正确的顺序出现。我使用同一页面来呈现地图,所以我认为问题与服务器有关。
瓷砖看起来像这样(缩放 1):
感谢您的帮助。
最好的祝福,
马立克
我不知道为什么,但是在从 mbtiles 数据库中获取数据之前需要修正 y 轴值。
如果您的图块 url 看起来像:http://host:port/data/{z}/{x}/{y}
在从数据库中获取 pbf 格式的图块数据之前,您需要重新计算 y 值:
y = pow(2, z) - 1 - y
mbtiles 规范中没有提到这一点,但我在 Tileserver-PHP source code
中找到了解决方案
像这样将图层添加到 mapbox-gl 时,将方案设置为 "tms":
map.addLayer({
id: 'tms_layer',
type: 'raster',
source: {
type: 'raster',
tiles: [
'https://tile-server/{z}/{x}/{y}.png'
],
scheme: 'tms'
},
});
发生这种情况是因为某些磁贴服务器使用 OSGeo 规范方案。
更多信息在这里:https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources-raster-scheme
我在自己的磁贴服务器上工作。我在以正确的顺序显示图块时遇到奇怪的问题。瓦片是使用 OSM 数据创建的。 当我将 tileserver-gl-light 用作图块服务器时,一切似乎都正常,但是当我尝试通过我自己的服务器提供图块时,它们在缩放后不会以正确的顺序出现。我使用同一页面来呈现地图,所以我认为问题与服务器有关。 瓷砖看起来像这样(缩放 1):
感谢您的帮助。 最好的祝福, 马立克
我不知道为什么,但是在从 mbtiles 数据库中获取数据之前需要修正 y 轴值。
如果您的图块 url 看起来像:http://host:port/data/{z}/{x}/{y}
在从数据库中获取 pbf 格式的图块数据之前,您需要重新计算 y 值:
y = pow(2, z) - 1 - y
mbtiles 规范中没有提到这一点,但我在 Tileserver-PHP source code
中找到了解决方案像这样将图层添加到 mapbox-gl 时,将方案设置为 "tms":
map.addLayer({
id: 'tms_layer',
type: 'raster',
source: {
type: 'raster',
tiles: [
'https://tile-server/{z}/{x}/{y}.png'
],
scheme: 'tms'
},
});
发生这种情况是因为某些磁贴服务器使用 OSGeo 规范方案。
更多信息在这里:https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources-raster-scheme