下载的离线谷歌离线地图切片,用cesium的UrlTemplateImageryProvider加载时发现切片编号对不上。经过测试发现如下方案可解决:
1.下载的谷歌时wgs84的坐标系,在添加链接时定义一下tilingscheme为wgs切片编号对的上了。
var viewer = new Cesium.Viewer("map", {
baseLayerPicker: false,
imageryProvider: new Cesium.UrlTemplateImageryProvider({
url: 'http://IP:port/{z}/{x}/{y}.png',
tilingScheme: new Cesium.GeographicTilingScheme({
ellipsoid: Cesium.Ellipsoid.WGS84
}),
maximumLevel: 20
})
});
加了坐标系如果z还对不上,一般少1,是因为下载的谷歌切片从1开始计算级别,但cesium切片0是金字塔的根。为了让z对上,可以把切片文件加的编号级别文件名称全减1
或者在前端代码重新计算一下:
imageryProvider: new Cesium.UrlTemplateImageryProvider({
url: 'http://IP:port/{myLevel}/{x}/{y}.png',
customTags: {
myLevel: function(imageryProvider, x, y, z) {
return z+1
}
},
credit: 'mapname',
tilingScheme: new Cesium.GeographicTilingScheme({
ellipsoid: Cesium.Ellipsoid.WGS84
}),
maximumLevel: 20
})
如上图添加customTags,在链接Z的位置放上自定义名称,并在customTags处计算