vue 接入vue-baidu-map

本文展示了如何在Vue.js应用中创建一个百度地图组件,并通过异步请求获取经纬度来定制地图中心。在组件中,利用`vue-baidu-map`库,设置了地图的初始位置、缩放级别和禁止拖拽及滚动缩放功能。同时,通过监听数据变化,当外部数据更新时,地图中心点会自动调整到新的经纬度位置。
摘要由CSDN通过智能技术生成

踩坑  赋值要注意不然容易报错

封一个百度地图组件

<template>
  <section class="map-area">
    <!-- 地图 -->
    <baidu-map
      ak="c3mhYQRUlBLoaeCNmpSWIzB9ePGQusnG"
      class="bm-view"
      :center="center"
      :zoom="zoom"
      :scroll-wheel-zoom="true"
      @ready="handler"
    >
      <bm-marker
        :position="{ lng: lng, lat: lat }"
        animation="BMAP_ANIMATION_BOUNCE"
        :icon="{
          url: '	https://api.map.baidu.com/images/marker_red_sprite.png',
          size: { width: 300, height: 157 },
        }"
      >
      </bm-marker>
    </baidu-map>
  </section>
</template>


<script>
import BaiduMap from "vue-baidu-map/components/map/Map.vue";
import BmMarker from "vue-baidu-map/components/overlays/Marker.vue";

export default {
  name: "BMap",
  components: { BaiduMap, BmMarker },
  props: ["point"],
  data() {
    return {
      center: { lng: 116.404, lat: 39.915 },
      lng: 116.404,
      lat: 39.915,
      zoom: 3,
    };
  },
  created() {
    console.log("center", this.center);

    // console.log("lng", this.lng);
    // console.log("lat", this.lat);
  },
  watch: {},
  methods: {
    handler({ BMap, map }) {
      this.map = map;
      this.BMap = BMap;
      map.disableDragging(); //禁止拖拽
      map.disableScrollWheelZoom(); //禁止缩放
      let _this = this;
      _this.lng = _this.center.lng = this.point.lng;
      _this.lat = _this.center.lat = this.point.lat;

      _this.zoom = 15;
    },
  },
};
</script>

<style scoped lang='scss'>
.bm-view {
  width: 100%;
  height: 535px;
}
</style>

页面里引入组件

    <BMap :point="point" />

异步请求之后赋值经纬度

  getMerConfig: function () {
      this.$axios.get("/api/pc/mer_config/" + this.id).then((res) => {
        let _this = this;
        _this.point.lng = res.data.about_us.baidu_address[0];
        _this.point.lat = res.data.about_us.baidu_address[1];
        // this.point.lng = 120.52;
        // this.point.lat = 30.4;
        console.log("point", this.point);
      });
    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值