高德地图 删除marker(指定marker)

这篇博客详细介绍了如何在地图上实现点击添加点位并存储,以及删除指定点位并重新绘制剩余点位的功能。通过监听地图点击事件,将经纬度坐标存入数组,并创建对应的marker。删除时,清除所有marker,从数组中移除目标点位,然后遍历更新后的数组重新绘制marker。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击一个点位,生成一个marker

把所有点击过的点位,放入markerList数组

删除的时候,先清除所有marker,删除positionList数组里的某一项,再循环positionList把marker重绘出来

var positionList = [] // 经纬度数组
var markerList = [] // marker列表
var marker

// 初始化地图
var map = new AMap.Map("container"); 

// 地图绑定点击事件
map.on('click', function (e) { 
  let arr = [e.lnglat.getLng(), e.lnglat.getLat()];
  AddPoint(arr)
  positionList.push(arr)
});

// 添加点位
function AddPoint (arr) {
  let index = 1 + markerList.length // 序号
  var content = '<div class="marker-icon">' + index + '</div>'; // 自定义marker

  marker = new AMap.Marker({
    content: content,
    position: arr,//位置
  })

  markerList.push(marker)

  map.add(marker);//添加到地图
}

document.getElementById("del").onclick = clearMarker;
// 删除某点位,并重绘
function clearMarker () {

  map.remove(markerList); // 删除所有点位

  positionList.splice(1, 1);

  for (var i = 0, marker; i < positionList.length; i++) {

    let index = 1 + i // 序号
    var content = '<div class="marker-icon">' + index + '</div>'; // 自定义marker

    marker = new AMap.Marker({
      content: content,
      position: positionList[i]
    });

    map.add(marker);

    markerList.push(marker);
  }

}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值