Vue Baidu Map--点标记bm-marker的使用、注意事项

点标记 bm-marker的使用

  1. import引入bmMarker 和bmLabel 组件
html 复制代码
<script>
import BaiduMap from 'vue-baidu-map/components/map/Map.vue'
import bmMarker from 'vue-baidu-map/components/overlays/Marker'
import bmLabel from './components/vue-baidu-map/components/overlays/Label'
export default {
  components: {BaiduMap,bmMarker ,bmLabel },
}
</script>
  1. <baidu-map>中加入<bm-marker><bm-label>
  • <bm-marker>是点标记,其中参数position是标记点的经纬度;
  • <bm-label>是标记点的文字标注,其中参数content是文字内容、labelStyle是文字样式、offset是相对位置
html 复制代码
<template>
<div class="map-content" v-if="iscollegeRole">
      <baidu-map class="bm-view map"
                 :ak="mapAK" 
                 :scroll-wheel-zoom="true" 
                 :center="mapData.center" 
                 :zoom="mapData.zoom"
                 :continuous-zoom="true"
                 @ready="handler">
       <bm-marker :position="mapData.center">
       <bm-label  content="标记点"
                 :labelStyle="labelStyle"
                 :offset="{width: -10, height: 30}"/>
        </bm-marker>
      </baidu-map>
    </div>
</template>

完整这两步就可以显示点标记了,下面放了完整代码


注:若开发时发现控制台报错

Error in callback for watcher "labelStyle": "TypeError: Cannot read property 'setStyle' of undefined"

原因: bm-label组件的参数labelStyle使用方法不正确导致的,labelStyle需要先在data中声明,然后在<bm-label>中使用

javascript 复制代码
<script>
export default {
  data() {
        return {
          labelStyle:{color: 'red', fontSize : '14px',fontWeight:'600'},
      }
   },
}
</script>

完整代码:

html 复制代码
<template>
<div class="map-content" v-if="iscollegeRole">
      <baidu-map class="bm-view map"
                 :ak="mapAK" 
                 :scroll-wheel-zoom="true" 
                 :center="mapData.center" 
                 :zoom="mapData.zoom"
                 :continuous-zoom="true"
                 @ready="handler">
       <bm-marker :position="mapData.center">
       <bm-label  content="标记点"
                 :labelStyle="labelStyle"
                 :offset="{width: -10, height: 30}"/>
        </bm-marker>
      </baidu-map>
    </div>
</template>

<script>
import BaiduMap from 'vue-baidu-map/components/map/Map.vue'
import bmMarker from 'vue-baidu-map/components/overlays/Marker'
import bmLabel from './components/vue-baidu-map/components/overlays/Label'
export default {
  components: {BaiduMap,bmMarker ,bmLabel },
  data() {
        return {
          mapAK: 'XXXXXXXXXXX',//需要到百度地图官网申请ak
          BMap:null,
          map:null,
          mapData: {
            //中心坐标
            center: { lng: 113.33, lat: 39.01 },
            //缩放级别,1~19
            zoom: 19
          },
          labelStyle:{color: 'red', fontSize : '14px',border:'none',background:'none',fontWeight:'600'},
      }
   },
   methods:{
        handler ({BMap, map}) {
          console.log(BMap, map)
          this.BMap = BMap
          this.map = map
          }
     },
}
</script>

<style scope>
.map {
  width: 100%;
  height: 400px;
}
</style>
相关推荐
FelicityW12 天前
报错:函数或变量 ‘calcmie‘ 无法识别。
matlab·报错
m0_5642641816 天前
springboot项目之websocket的坑:spring整合websocket后进行单元测试后报错的解决方案
java·经验分享·spring boot·websocket·spring·单元测试·报错
LLLL963 个月前
docker pull 报错Get “https://registry-1.docker.io/v2/“: net/http: request canceled while waiting for c
docker·报错
于指尖飞舞4 个月前
在vue3中使用datav完整引入时卡在加载页面的解决方法
vue3·报错·datav
伊织code4 个月前
[报错] Dify - 踩坑笔记
flask·api·报错·踩坑·dify·poetry·opendal
dzj20214 个月前
Unity发布android Pico报错——CommandInvokationFailure: Gradle build failed踩坑记录
android·unity·gradle·报错·pico
浮梦终焉4 个月前
_使用CLion的Vcpkg安装SDL2,添加至CMakelists时报错,编译报错
报错·c/c++·sdl2
猿与禅5 个月前
jdk17用jmap -hea打印JVM堆信息报错Cannot connect to core dump or remote debug server
jvm·报错·jmap·堆信息
麻辣翅尖5 个月前
【解决】k8s使用flannel网络插件的问题整理
kubernetes·k8s·报错
Y编程小白5 个月前
SSM报错:表现层方法应该返回字符串,但是返回页面
java·ssm·报错