leaflet加载arcgis切片

1. 获取arcgis切片

目录1
目录2

2. 扩展一个leaflet的插件

L.TileLayer.ArcServerTileLoad = L.TileLayer.extend({
  getTileUrl: function (tilePoint) {
    var oo = '00000000'
    var xx = tilePoint.x.toString(16)
    xx = 'C' + oo.substring(0, 8 - xx.length) + xx
    var yy = tilePoint.y.toString(16)
    yy = 'R' + oo.substring(0, 8 - yy.length) + yy

    if (tilePoint.z.toString().length === 1) {
      tilePoint.z = '0' + tilePoint.z.toString()
    }
    return L.Util.template(this._url, L.extend({
      s: this._getSubdomain(tilePoint),
      z: 'L' + tilePoint.z,
      x: xx,
      y: yy
    }, this.options))
  }
})
L.tileLayer.arcServerTileLoad = function (url, options) {
  return new L.TileLayer.ArcServerTileLoad(url, options)
}

3. 加载切片

L.tileLayer.arcServerTileLoad('http://localhost:8080/map/{z}/{y}/{x}.png').addTo(map)

4. 调试

第一次加载上的时候,发现只能加载上一两个,大部分都找不到。后来就打开devtool,发现当地图层级在9级时,加载的是切片实际是6级的切片(这个可以看当地图在第9级时,后台一直在请求哪些切片,再根据这些切片名去文件夹中找到对应的第几层)。
解决办法可以把切片的文件名加上3

你可能感兴趣的:(leaflet加载arcgis切片)