Vue3调用百度地图API

Vue3调用百度地图API

1 准备事项

注册百度地图API及获取密钥。百度一查一大堆,就过多描述了
https://lbsyun.baidu.com/index.php?title=jspopularGL/guide/show

2 代码

2.1 首先在public文件夹下index.html中引入

<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=申请的密钥"></script>

2.2 业务代码

<template>
  <div id="allmap"></div>
</template>

<script>
import {
  getUserAddressList
} from './mapSum.api';
import { defineComponent, onMounted } from "vue";
import {UserOutlined, DownOutlined} from '@ant-design/icons-vue';
import {message, Pagination, AutoComplete} from 'ant-design-vue';
import {defHttp} from '/@/utils/http/axios';
import {
  getToken
} from '/@/utils/auth';

export default {
  components: {
    DownOutlined,
    'a-pagination': Pagination,
    'a-auto-complete': AutoComplete,
  },
  setup() {
    onMounted(() => {
      // loadMapScript();
      init();
    });
    // 初始化地图 --本来地图加载写在init里的,由于此方法加载时组件实例还没有被完全创建,所以在这里调不到业务代码,这里的代码重写在mounted中
    const init = () => {
      // let Bmap = window.BMap; // 注意要带window,不然会报错(注意官方api,会有改动,之前是Bmap,后面3.0版本改为了BMap,最好查文档或者打印一下window)
      // var map = new Bmap.Map("allmap"); // allmap必须和dom上的id一直
      // map.centerAndZoom(new Bmap.Point(117.330539, 31.734294), 7); // 初始化地图,设置中心点坐标和地图级别
      // map.setCurrentCity("安徽");
      // map.enableScrollWheelZoom(true);

    };

    const loadMapScript = () => {

    };
  },
  data() {
    return {
      jsonData:[[116.404,39.915,'水厂1地址:中华路1号'],[116.383752,39.91334,'水厂2地址:兴宁路13号']],
      center: { lng: 0, lat: 0 }, //经纬度
      zoom: 13 //地图展示级别
    }
  },
  mounted() {
    this.fillMap()
  },
  methods:{
    //---------------------------------------第一部分 初始化地图-------------------------------------
    fillMap(){
      let Bmap = window.BMap; // 注意要带window,不然会报错(注意官方api,会有改动,之前是Bmap,后面3.0版本改为了BMap,最好查文档或者打印一下window)
      var map = new Bmap.Map("allmap"); // allmap必须和dom上的id一直
      map.centerAndZoom(new Bmap.Point(117.250552,32.974772), 7); // 初始化地图,设置中心点坐标和地图级别
      // map.setCurrentCity("安徽");
      map.enableScrollWheelZoom(true);

        //-----------------------------第二部分 获取用户坐标列表,渲染坐标点---------------------------------
        getUserAddressList({}).then(res =>{
          console.log("res====",res)
            this.fillCoordinate(Bmap,map,res)
        })
    },
      //------------------------------------第三部分 渲染部分------------------------------------------
    //渲染坐标点
    fillCoordinate(Bmap,map,res) {
      //自定义坐标点样式
      var green = new BMap.Icon("服务器线上地址/icon/green.png", new BMap.Size(50, 50), {//尺寸大小
        imageSize: new BMap.Size(50, 50)
      });
      //创建坐标点
      for (let i = 0; i < res.length; i++) {
        var points = new Bmap.Point(res[i].longitude, res[i].latitude);
        var label = new BMap.Label(res[i].realname,{//创建文本标注
          offset:new BMap.Size(40,30)//距离坐标偏移位置 40-x轴  30-y轴
        });
        var marker = new BMap.Marker(points,{icon:green});
        marker.setLabel(label);
        map.addOverlay(marker);
      }

    }
  },
  watch: {}
}
</script>

<style  lang='less' scoped>

#allmap {
  // 注意给dom宽高,不然地图不出来
  width: 100%;
  height: 100%;
}
</style>

效果图

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值