离线百度地图配置本地瓦片图问题

目的:离线百度地图使用本地瓦片图,将地图正确显示。

image.png

按照上图修改代码,打印出获取的瓦片图路径是对的。
比如13级别时需要的的瓦片图,打印出来是:'static/tiles/13/1581/589.png'
我的瓦片图确实放在'static/tiles'下,
但13文件夹下没有目录及文件'/1581/589.png',
都是其他的图片文件。

假如将文件名及图片名改成打印出来的所需要的,(比如将13/1608/444.png,'1608'改成'1581','444.png'改成'589.png')是可以正常渲染出来的,因此应该不是路径的问题。

那可能是资源的问题吗?为什么下载的和它所需要的的对不上?应该如何解决呢?
瓦片图资源是从MapDownloader软件上下载的。

阅读 3.1k
1 个回答

可能是坐标计算公式错了,百度地图是进行了加密偏移的,不过加密公式是公开的,所以你需要重新计算下,一般的公式计算如下。但是不保证和你的离线包匹配,所以最好到你下载离线包的地方找一下计算公式

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';
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题