Mapbox - 无效的瓷砖顺序

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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 中找到了解决方案

【讨论】:

以上是关于Mapbox - 无效的瓷砖顺序的主要内容,如果未能解决你的问题,请参考以下文章

MapBox MB 平铺与矢量平铺

如何实现mapbox-gl的tile源码

找不到 com.mapbox.mapboxsdk:mapbox-android-accounts:0.7.0

MapBox MapView 属性弹出错误

MapBox MapView 属性弹出错误

mapbox文字图层在哪