如何使用百度离线地图导航(如何使用百度离线地图)

在没有外网的情况下,我们需要使用离线的百度地图,所以,就不能引入百度地图的线上 JS 文件。

之前我们做百度地图项目的时候,只需要引入一个 Script 标签即可

<script type=\\\"text/javascript\\\" src=\\\"http://api.map.baidu.com/api?v=3.0&ak=您的密钥\\\"></script>

便可以在页面中使用百度地图的各种 API ,但这次项目不允许联网,那只能用离线版本地图。

1、如何制作离线版本地图

访问地址:

http://api.map.baidu.com/api?v=3.0

然后复制 Script 里面的链接,打开连接下载当前 JS ,每隔一段时间打开地图的版本号都不一样,地图一直在维护,所以版本号会更新。如果你打算自己制作一个离线地图,就按下面链接的方法:

参考网站:

https://blog.csdn.net/wml00000/article/details/82219015

  • 先把 JS 文件格式化

  • 按提示先屏蔽 AK 验证

  • 引用本地的 modules 模块文件

  • 修改为本地的资源引用

  • 更改地图瓦片的本地路径

2、更改自己当前版本号的方法名

百度地图是需要配合 localStorage 来使用的,我在本机调试的时候没问题,打包后,换台电脑就不能使用了,所以,你需要去源码里改自己编译后对应的方法名。

下面 f.nk() 就是我当前地图版本需要调用的 JS :

if (a.length > 0) {  for (i = 0; i < a.length; i++) {    mf = mapConfig.home + \\\'modules/\\\' + a[i] + \\\'.js\\\';    pa(mf);    console.log(\\\'加载模块文件:\\\' + mf); //IE error  }} else {  f.nK()//需要换成自己版本号 格式化的JS方法}//0 == a.length ? f.nK() : pa(f.EF.rP + \\\"&mod=\\\" + a.join(\\\",\\\"))
3、百度地图瓦片下载

地图如果可以运行,说明该加载的JS都加载好了,下一步就该去加载对应的瓦片了,瓦片也可以叫「图片」。完整的百度地图,全是一张张的图片铺起来的,所以,你需要在你对应的级别来铺相同级别的图片。

百度地图可以放大和缩小,而放大缩小的级别对应着不同的文件夹:

不同级别瓦片

百度瓦片,我使用的是「BMapDown」这个工具,安装 .exe 包,按照说明去下载你需要的地图瓦片。

4、坐标如何转换

GPS 导航定位默认都使用的是 WGS84 的坐标码,而百度用的是 BD09 的,所以需要进行转码,不管是腾讯还是高德的地图坐标码,都需要转换。

百度地图内置的转码 API 必须要联网,如果不联网的话,是不会走 callback 方法的。所以,我们可以使用大牛制作好的转码库「gcoord」库。

Github 地址:

https://github.com/hujiulong/gcoord


最后放一个我自己做的百度地图离线版本的 Git 库,如有需要可自取。

Github地址:

https://github.com/cuishunbiao/baidu-map-offline

图片授权基于 www.pixabay.com 相关协议

原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34483.html

(0)
小道研究's avatar小道研究
上一篇 2024年4月20日 下午10:22
下一篇 2024年4月20日 下午10:24

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注