准备:
-
百度了解了离线地图基本都是用瓦片(就是图片)拼接,然后问了网友说是这种如果地图需要层级很高,下载的瓦片资源基本是几个G,但是同事说是内网所以没事
-
找到一个很好的瓦片资源下载器,找了好多天才找到,亲测好使百度离线瓦片资源下载
-
里面一开始使用会报错说未授权使用地图api,按照这个网站里大佬的另一篇文章改一下就好了解决未授权使用地图api办法
-
按照网站大佬的代码一步一步做,然后下载了瓦片发现瓦片命名格式不对(其实是因为我只下载了一个层级的瓦片,然后瓦片的命名格式由"层级_x_y.png"变成了“x文件夹下y.png”),然后自己重新组装了一下瓦片的命名就行了
大概代码:
`let tileLayer = new BMap.TileLayer({ isTransparentPng: true });
tileLayer.getTilesUrl = function (tileCoord, zoom) {
if (zoom >= 12 && zoom <= 19) {
var x = tileCoord.x;
var y = tileCoord.y;if (x < 0) { x = "M" + -x; } if (y < 0) { y = "M" + -y; } let url = this.senicUrl + x + "/" + y + ".png"; return url; }
}.bind(this);
map.addTileLayer(tileLayer);`
感觉功能是暂时实现了 但是还有代码不懂的