【问题标题】:Mapbox - invalid tile orderMapbox - 无效的瓷砖顺序
【发布时间】:2020-04-29 01:18:47
【问题描述】:

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

感谢您的帮助。 最好的祝福, 马立克

【问题讨论】:

    标签: mapbox mbtiles openmaptiles tileserver-gl


    【解决方案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

    【讨论】:

    • 我已经正确设置了网址。这不是问题。
    • @MarekMarczak 你也设置了scheme: 'tms'吗?
    【解决方案2】:

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

    如果您的磁贴网址看起来像:http://host:port/data/{z}/{x}/{y} 在从数据库中获取 pbf 格式的平铺数据之前,您需要重新计算 y 值:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多