learning_record_doc/front_end/vue/vue引入百度地图.md
2022-02-28 23:07:00 +08:00

2.5 KiB
Raw Blame History

vue引入百度地图

  • 首先安装百度地图依赖

    npm install vue-baidu-map --save
    
  • 申请百度地图开放平台百度地图密钥

  • 在main.js中全局注册

    import Vue from 'vue'
    //添加百度地图
    import BaiduMap from 'vue-baidu-map'
    Vue.use(BaiduMap,{
      ak:'GHYWGm6cKODTU3BzuKDlEqARxc2ZEf3c'
    })
    
  • 如果使用的是quasar-cli

    • 在src/boot 下创建启动文件baiduMap.js 添加以下内容

      import Vue from 'vue'
      //添加百度地图
      import BaiduMap from 'vue-baidu-map'
      Vue.use(BaiduMap,{
        ak:'你申请的百度地图开放平台应用key'
      })
      
    • 在quasar.conf.js文件中添加你的启动文件

      boot: [
          'i18n',
          'axios',
          'baiduMap'
      ]
      
  • 页面

    <template>
      <baidu-map
        :center="center"
        :zoom="zoom"
        @ready="handler"
        style="height: 1080px"
        @click="getClickInfo"
        :scroll-wheel-zoom="true"
      >
      </baidu-map>
    </template>
    <script>
    export default {
      name: "TestBaiDu",
      data() {
        return {
          center: { lng: 109.45744048529967, lat: 36.49771311230842 },
          zoom: 13
        };
      },
      methods: {
        handler({ BMap, map }) {
          var point = new BMap.Point(109.49926175379778, 36.60449676862417);
          map.centerAndZoom(point, 13);
          var marker = new BMap.Marker(point); // 创建标注
          map.addOverlay(marker); // 将标注添加到地图中
          var circle = new BMap.Circle(point, 6, {
            strokeColor: "Red",
            strokeWeight: 6,
            strokeOpacity: 1,
            Color: "Red",
            fillColor: "#f03",
          });
          map.addOverlay(circle);
          var opts = {
              width: 50, // 信息窗口宽度
              height: 10, // 信息窗口高度
              title: "北京", // 信息窗口标题
          };
          var infoWindow = new BMap.InfoWindow("三里屯", opts); // 创建信息窗口对象
          map.openInfoWindow(infoWindow, map.getCenter()); // 打开信息窗口
        },
        getClickInfo(e) {
          console.log(e.point.lng);
        console.log(e.point.lat);
          this.center.lng = e.point.lng;
          this.center.lat = e.point.lat;
        }
      }
    };