vue将BaiduMap引入(组件引入),显示位置信息

<template>
  <div class="mapWin">
      <!-- ak密钥自己申请 -->
    <baidu-map
      @ready="handler"
      class="bm-view"
      ak="XXXXXXXXXXX"
      :center="center"
      :zoom="zoom"
    >
      <!-- 目标位置提示点 -->
      <bm-marker
        :position="{ lng: 116.404, lat: 39.915 }"
        :dragging="true"
        @click="infoWindowOpen"
        animation="BMAP_ANIMATION_BOUNCE"
      >
        <bm-info-window
          :show="show"
          @close="infoWindowClose"
          @open="infoWindowOpen"
          >我爱北京天安门</bm-info-window
        >
      </bm-marker>
      <!-- 缩放调节大小 -->
      <bm-navigation anchor="BMAP_ANCHOR_TOP_LEFT"></bm-navigation>
      <!-- 比例尺 -->
      <bm-scale anchor="BMAP_ANCHOR_BOTTOM_LEFT"></bm-scale>
    </baidu-map>
  </div>
</template>
<script>
import { BaiduMap, BmMarker, BmInfoWindow, BmNavigation,BmScale } from "vue-baidu-map";

export default {
  name: "mapPage",
  data() {
    return {
      center: { lng: 0, lat: 0 },
      zoom: 3,
      BMap: null,
      map: null,
      show: false,
    };
  },
  components: {
    BaiduMap,
    BmMarker,
    // BmScale,
    // BmLabel,
    BmInfoWindow,
    BmNavigation,
    BmScale
  },
  methods: {
    handler: function ({ BMap, map }) {
      this.BMap = BMap;
      this.map = map;
      this.center.lng = 116.404;
      this.center.lat = 39.915;
      this.zoom = 15;
    },
    infoWindowClose() {
      this.show = false;
    },
    infoWindowOpen() {
      this.show = true;
    },
  },
};
</script>
<style>
.mapWin {
  width: 100%;
  height: 300px;
}
.bm-view {
  width: 100%;
  height: 300px;
}
</style>

效果如下:

注意:如果只引用部分BaiduMap,API写的是引用vue-baidu-map的“map/Map.vue",但是引用maker,label等就不能这样写,他们用的是overlays文件下的内容,所以可以直接像上述写法一样引入。

关于BMap的undefined问题也是注意使用handler方法将对象获取,如果还要实现定位可以使用GeoLocation等方法。关于组件不存在,用到哪个就import哪个,在component中声明。

红色图标样式有动态和静态,动态的图片位置上下移动,如果要设置点击事件弹出infoWindow需要进一步处理。静态的可以获取到点击的位置触发infoWindow弹窗。

传送JavaScript的百度API手册:https://dafrok.github.io/vue-baidu-map/#/zh/start/usage

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值