在vue中给百度地图添加多个标点

一、创建标点坐标

1、根据经纬度生成标点坐标

const points = ref([
  { lng: 116.405725, lat: 39.935362 },
  { lng: 116.950723, lat: 39.964357 },
  { lng: 115.950723, lat: 39.974357 },
  { lng: 116.950723, lat: 39.984357 },

  // 添加更多的经纬度坐标
]);

2、将标点渲染到地图上

import { onMounted, onUnmounted, ref, reactive, toRefs } from "vue";

const baiduRef = ref();
const map = ref();
const points = ref([
  { lng: 116.405725, lat: 39.935362 },
  { lng: 116.950723, lat: 39.964357 },
  { lng: 115.950723, lat: 39.974357 },
  { lng: 116.950723, lat: 39.984357 },

  // 添加更多的经纬度坐标
]);
const markers = ref([]);

function initMap() {
  map.value = new BMap.Map(baiduRef.value); // 新建一个map地图实例
  map.value.centerAndZoom(new BMap.Point(points.value[0].lng, points.value[0].lat), 10);
  map.value.enableScrollWheelZoom(true); // 滚轮缩放
  map.value.setMapStyleV2({
    styleId: "1fb853a740649182c004c7f05e3f1ac7", // 样式id,设置样式的自定义
  });

  points.value.forEach((point) => {
    const bPoint = new BMap.Point(point.lng, point.lat); // 创建点
    const marker = new BMap.Marker(bPoint); // 做标记
    map.value.addOverlay(marker); // 在地图上显示标注点
    markers.value.push(marker);

    // 点击标注监听事件
    marker.addEventListener("click", function (e) {
      alert("您点击了标注");
      console.log(e, 888888888);
    });
  });
}

onMounted(() => {
  initMap();
});

onUnmounted(() => {
  map.value = null; // 销毁地图实例
});

3、完成效果
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值