vue项目中使用百度离线地图(最新全面爬坑版)

本文详述在Vue项目中集成百度离线地图的步骤,包括获取并修改js文件、下载本地资源、配置瓦片地址及使用Nginx反向代理解决性能问题。提供地图下载器资源和完整项目示例。
摘要由CSDN通过智能技术生成

最近项目需求中需要使用百度离线地图,查找翻阅资料整理出来的最详细最新的使用步骤(内含地图下载器 - 无水印版)。希望可以帮到你。


1. 获取js文件

打开此链接,点击框中的 js 文件就可以获得百度地图api的 js 代码。点击左下角的图标,整理代码格式。

然后新建 js 文件,将格式化后的代码粘贴进去,命名为 map.js,再然后将此 js 文件放在 vue 项目中,我的放在了 static/map 下。最后,在 vue 项目的启动入口 index.html 的 head 中引入这个js。

<script src="static/map/map.js" type="text/javascript></script>

2. 修改map.js文件

以下代码会在百度更新有些出入,但基本样式不变,找相似

2.1 查找 Math.random(),定位到以下位置

function ra(a, b) {
      if(/^http/.test(a)) return;
      // !!!!!这里加判断,如果是调用外部资源就退出去
​
      if (b) {
          var c = (1E5 * Math.random()).toFixed(0);
          B._rd["_cbk" + c] = function(a) {
              b && b(a);
              delete B._rd["_cbk" + c]
          }
          ;
          a += "&callback=BMap._rd._cbk" + c
      }
      var d = H("script", {
          type: "text/javascript"
      });
      d.charset = "utf-8";
      var e = window.___abvk ? window.___abvk : Ec("SECKEY_ABVK")
        , f = Ec("BMAP_SECKEY");
    //     , a = a + ("&seckey=" + encodeURIComponent(e + "," + f));
      // !!!!!这里要引掉,不然会报错
      d.src = a;
      d.addEventListener ? d.addEventListener("load", function(a) {
          a = a.target;
          a.parentNode.removeChild(a)
      }, q) : d.attachEvent && d.attachEvent("onreadystatechange", function() {
          var a = window.event.srcElement;
          a && ("loaded" === a.readyState || "complete" === a.readyState) && a.parentNode.removeChild(a)
      });
      setTimeout(function() {
          document.getElementsByTagName("head")[0].appendChild(d);
          d = p
      }, 1)
  }

 2.2 设置引入本地资源路径

 B.url.domain.main_domain_nocdn.baidu  全局多查找几次,定位到下面的代码

B.kz = window.HOST_TYPE || "0";
  B.url = B.s0[B.kz];
  B.Fp = B.url.proto + B.url.domain.baidumap + "/";
  B.oc = B.url.proto + ("2" == B.kz ? B.url.domain.main_domain_nocdn.other : B.url.domain.main_domain_nocdn.baidu)
  • 20
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论
Vue项目实现百度离线地图开发,可以按照以下步骤进行: 1. 下载百度地图离线包 首先需要下载百度地图离线包,可以在百度地图开放平台上下载。下载后将离线包解压到项目的static目录下。 2. 引入百度地图API 在Vue项目,可以在index.html引入百度地图API的JS文件: ``` <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的AK"></script> ``` 其,AK是在百度地图开放平台申请的API Key。 3. 初始化地图Vue项目,可以在mounted()函数初始化地图: ``` mounted() { let map = new BMap.Map("mapContainer"); // 创建地图实例 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置心点坐标和地图级别 map.enableScrollWheelZoom(true); // 启用滚轮放大缩小 map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件 map.addControl(new BMap.ScaleControl()); // 添加比例尺控件 map.addControl(new BMap.OverviewMapControl()); // 添加缩略地图控件 } ``` 4. 加载离线地图 在初始化地图之后,可以通过设置地图的样式来加载离线地图: ``` map.setMapStyle({styleJson: []}); // 加载离线地图 ``` 其,styleJson是离线地图的样式json文件,可以在离线找到。 5. 打包部署 最后,将Vue项目打包部署到服务器上即可。需要注意的是,由于离线地图文件较大,需要在服务器上配置缓存等策略,以提高地图加载速度。 以上就是Vue项目实现百度离线地图开发的步骤。
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍零伍零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值