目的:离线百度地图使用本地瓦片图,将地图正确显示。
按照上图修改代码,打印出获取的瓦片图路径是对的。
比如13级别时需要的的瓦片图,打印出来是:'static/tiles/13/1581/589.png'
我的瓦片图确实放在'static/tiles'下,
但13文件夹下没有目录及文件'/1581/589.png',
都是其他的图片文件。
假如将文件名及图片名改成打印出来的所需要的,(比如将13/1608/444.png,'1608'改成'1581','444.png'改成'589.png')是可以正常渲染出来的,因此应该不是路径的问题。
那可能是资源的问题吗?为什么下载的和它所需要的的对不上?应该如何解决呢?
瓦片图资源是从MapDownloader软件上下载的。
可能是坐标计算公式错了,百度地图是进行了加密偏移的,不过加密公式是公开的,所以你需要重新计算下,一般的公式计算如下。但是不保证和你的离线包匹配,所以最好到你下载离线包的地方找一下计算公式
tileUrlFunction: function(tileCoord, pixelRatio, proj) {
var z = tileCoord[0];
var x = tileCoord[1];
var y = tileCoord[2];
// 百度瓦片服务url将负数使用M前缀来标识
if (x < 0) {
x = 'M' + (-x);
}
if (y < 0) {
y = 'M' + (-y);
}
return 'http://online' + parseInt(Math.random() * 10) + '.map.bdimg.com/onlinelabel/?qt=tile&x=' +
x + '&y=' + y + '&z=' + z + '&styles=sl&udt=20170620&scaler=1&p=1';
}