在 Vue3 中使用
 百度地图 
<template>
  <div>
    百度地图
    <div class="mapp" ref="baiduRef"></div>
  </div>
</template>
<script lang="ts" setup>
import { getCurrentInstance, ref } from 'vue';
const cns = getCurrentInstance();
const { $get } = cns?.appContext.config.globalProperties.http;
const baiduRef = ref();
const map = ref();
const point = ref();
const marker = ref();
const config = {
  v: '3.0',
  ak: 'bZD4KRYrtXI4FliEeHeh0hdtNHvyRMm0',
};
const getBMap = async () => {
  try {
    const res = await $get('/map/api', config);
    console.log(res);
    const src = `/map${res.slice(
      res.indexOf('/getscript'),
      res.lastIndexOf('"')
    )}`;
    let script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = src;
    document.getElementsByTagName('head')[0].appendChild(script);
    script.onload = () => {
      initMap();
    };
  } catch (error) {
    console.log(error);
  }
};
getBMap();
function initMap(lng = 116.405725, lat = 39.935362) {
  const BMap = (window as any).BMap;
  map.value = new BMap.Map(baiduRef.value); //新建一个map地图实例
  point.value = new BMap.Point(lng, lat); //创建点
  //   console.log(point.value, 858585);
  marker.value = new BMap.Marker(point.value); //做标记
  map.value.centerAndZoom(point.value, 15);
  map.value.enableScrollWheelZoom(true); //滚轮缩放
  map.value.addOverlay(marker.value); //在地图上显示标记点
  //   样式id,设置样式的自定义
  map.value.setMapStyleV2({
    styleId: '1fb853a740649182c004c7f05e3f1ac7',
  });
  //   点击标注监听事件
  marker.value.addEventListener('click', function (e) {
    alert('您点击了标注');
    console.log(e, 888888888);
  });
}
</script>
<style lang="scss">
.mapp {
  height: 500px;
}
</style>隐藏源代码
