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

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

 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()
        }
    },
Logo

前往低代码交流专区

更多推荐