-1

我正在自己的瓷砖服务器上工作。我在以正确的顺序显示瓷砖时遇到了奇怪的问题。瓷砖是使用 OSM 数据创建的。当我使用 tileserver-gl-light 作为切片服务器时,一切似乎都很好,但是当我尝试通过我自己的服务器提供切片时,它们在缩放后没有以正确的顺序出现。我使用相同的页面来渲染地图,所以我认为问题与服务器有关。瓷砖看起来像这样(放大 1):

在此处输入图像描述

我很感激任何帮助。最好的问候, 马雷克

4

2 回答 2

1

将图层添加到 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

于 2020-01-12T07:54:23.993 回答
0

我不知道原因,但是在从 mbtiles 数据库中获取数据之前需要校正 y 轴值。

如果您的瓷砖 url 看起来像:http://host:port/data/{z}/{x}/{y} 您需要在从数据库中获取 pbf 格式的瓷砖数据之前重新计算 y 值:

y = pow(2, z) - 1 - y

mbtiles 规范中没有提到这一点,但我在Tileserver-PHP 源代码中找到了解决方案

于 2020-01-11T20:31:29.037 回答