【vue baidu-map】解决更新数据,bm-marker显示不完全问题

实现效果:

问题:切换上面基地tab键,导致地图图标展示不完全;刷新页面就可以正常展示。判断是<bm-marker>标记元素没有动态刷新dom元素引起的问题。

方案:this.$nextTick({})

      this.$nextTick(()=>{
      this.equipmentList.forEach(item => {
        if (item.category === index && item.point) {
          var obj = {
            position: {
              lng: item.point.split(",")[0],
              lat: item.point.split(",")[1]
            },
            icon: {
              url: iconPath,
              size: { width: 33, height: 33 },
              opts: {
                imageSize: { width: 33, height: 33 }
              }
            }
          };
          this.markerList.push(obj);
         
        }
      });
      console.log(this.markerList, "当前设备的标注点列表");        
      })

上面代码功能是每次切换右侧设备列表获取新的地图标注点,将获取markerList的代码放在this.$nextTick({})里面即可。

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个基于vue-baidu-map拖动bm-marker获取经纬度和详细地址的代码示例: ``` <template> <div> <baidu-map ak="your_baidu_map_ak" @ready="onMapReady" :center="center" :zoom="zoom" style="height: 500px;"> <bm-marker :position="markerPosition" :label="markerLabel" :enableDragging="true" @dragging="onMarkerDragging" @dragend="onMarkerDragEnd"> </bm-marker> </baidu-map> <div v-if="address">{{ address }}</div> </div> </template> <script> import { BaiduMap, BmMarker } from 'vue-baidu-map' export default { components: { BaiduMap, BmMarker }, data() { return { center: { lng: 116.404, lat: 39.915 }, zoom: 15, markerPosition: { lng: 116.404, lat: 39.915 }, markerLabel: { content: '拖动我获取位置信息', offset: { width: 30, height: -30 } }, address: '' } }, methods: { onMapReady(map) { this.geocoder = new window.BMap.Geocoder() }, onMarkerDragging(event) { this.markerPosition = event.point }, onMarkerDragEnd(event) { this.markerPosition = event.point this.getAddress(this.markerPosition) }, getAddress(point) { this.geocoder.getLocation(point, result => { if (result) { this.address = result.address } }) } } } </script> ``` 在这个示例中,我们使用了vue-baidu-map组件库来创建一个百度地图实例。然后,我们在地图上放置了一个可拖动的marker,并监听marker的dragging和dragend事件来更新marker的位置并获取对应的详细地址。其中,我们使用了百度地图的Geocoder类来获取地址信息。最后,我们将获取到的地址显示在页面上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值