1. 获取arcgis切片
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