vue 调用百度地图 页面控制台报错:BMap is not defined最终解决方案

原先看了好多网上的资料都没有解决

问题原因分析: 加载顺序导致

 mounted () {//钩子函数
    this.initMap();
  },

页面正确执行顺序为:页面初始化——地图初始化——数据初始化
上面报错的问题原因是:页面初始化——数据初始化——地图初始化
当数据需要加载到地图上面时地图还没有初始化完成导致的
最终解决方案如下:

initMap () {
      console.log("开始加载地图...")
      MP('你的ak').then(() =>{
        this.map =new BMap.Map("map", {
          enableMapClick: false
        }) //新建地图实例,enableMapClick:false :禁用地图默认点击弹框
        this.map.setMapStyle({
          styleJson: styleJson.styleJsonjs//styleJsonjs:个性化地图样式 百度地图api可找到个性化地图自己编辑样式
        });
        this.map.addControl(new BMap.MapTypeControl({
          mapTypes: [
            BMAP_NORMAL_MAP,
            BMAP_HYBRID_MAP
          ]
        }));
        if(BMap){//这里加判断
          //加载数据
          this.site_ready()
        }
    },
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值