漏刻有时百度地图API实战开发(10)清除覆盖物和清除指定覆盖物

2023-12-15 12:37:55

在这里插入图片描述
百度地图开发中的清除覆盖物是指删除地图上的某些元素,例如标记、折线、多边形、圆形等。这些元素通常被称为覆盖物。在开发过程中,有时需要清除这些覆盖物,以实现地图的更新或调整。

清除覆盖物的方法通常取决于覆盖物的类型和添加到地图的方式。例如,使用JavaScript API添加的覆盖物可以通过调用相应的方法来清除。对于标记(Marker),可以使用map.removeOverlay(marker)方法来清除;对于折线(Polyline),可以使用map.removeOverlay(polyline)方法来清除;对于多边形(Polygon)和圆形(Circle),也可以使用类似的方法来清除。

清除覆盖物有两个方法:map.removeOverlay()或者 map.clearOverlays()。而 clearOverlays()方法一次移除全部的覆盖物,removeOverlay()一次移除一个指定覆盖物。

一、map.clearOverlays()

当使用Map.clearOverlays()方法一次性移除全部覆盖物时会触发此事件。

二、map.clearOverlays()

当使用Map.removeOverlay()方法移除单个覆盖物时会触发此事件

1.设置marker的nam属性

  var marker = new BMap.Marker(points, {
        icon: new BMap.Icon(icon, new BMap.Size(30, 36)),
        offset: new BMap.Size(0, -18)
    });
    marker.name = name;//覆盖物设置名称;
    map.addOverlay(marker);

获取所有覆盖物,然后删除指定名称的覆盖物。

  var allOverlay = map.getOverlays();
            allOverlay.map(item => {
                //console.log(item);
                if (item.name === params.name) {
                    map.removeOverlay(item);
                }
            })

2.设置文本标签属性

		var label = new BMap.Label("我是id="+i,{offset:new BMap.Size(20,-10)});
		addMarker(point,label);
	function deletePoint(){
		var allOverlay = map.getOverlays();
		for (var i = 0; i < allOverlay.length -1; i++){
			if(allOverlay[i].getLabel().content == "我是id=1"){
				map.removeOverlay(allOverlay[i]);
				return false;
			}
		}

@漏刻有时

文章来源:https://blog.csdn.net/weixin_41290949/article/details/135010252
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。