Mapbox GL JS平铺错误?

时间:2018-01-04 15:34:51

标签: javascript mapbox mapbox-gl-js

Messed Up Tiling

我遇到的问题是我可以很好地加载我的瓷砖,但它们在地图视图中完全错误。这种情况发生在超过0的所有缩放级别上(因为0显然只是整个图像)

我正在运行一个tileserver-php tileserver,它从mbtiles文件中提供解压缩的矢量切片。我设法让它们工作但是分辨率变成了maxzoom之外的openlayers的废话(好像矢量没有正确地更新它们自己的分辨率)。

在Mapbox GL JS上,我让他们加载但我现在面临这个问题。

var simple = {
  "version": 8,
  "sources": {
      "osm": {
          "tiles": ["http://localhost:8000/tileserver/nederland/{z}/{x}/{y}.vector.pbf"],
          "type": "vector",
          "maxzoom": 14
      }
  },
  "style": {
    // this styling is about 600 lines long so I'm not including it
  }
}

var map = new mapboxgl.Map({
    container: "map",
    style: simple,
    //maxBounds: [[2.992192,50.74753],[7.230455,54.01786]],
    zoom: 1,
    center: [5.8, 53.2]
});

使用OpenLayers,我能够像这样设置平铺网格:

function tileUrlFunction(tileCoord) { 
              return ("http://localhost:8000/tileserver/nederland/{z}/{y}/{x}.vector.pbf")
              .replace("{z}", String(tileCoord[0]))
              .replace("{x}", String(tileCoord[1]))
              .replace("{y}", String(-tileCoord[2] - 1));
            }

Mapbox GL是否可以实现这一点,还是其他地方搞乱了?

我试过跟随: - 将网址更改为其他格式({x} / {y} / {z},{z} / {y} / {x}等)。有趣的是,这可以固定左侧瓷砖或上部瓷砖的垂直或水平定位,但不能同时固定两者。

1 个答案:

答案 0 :(得分:1)

@sabas是对的。

虽然它似乎是tileserver-php框架中的标准..之后;我将字符串替换为如下所示:{z} / {y} / {x},现在可以正常工作了。