百度地图API,如何通过标注名 来删除标注
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度地图API,如何通过标注名 来删除标注相关的知识,希望对你有一定的参考价值。
百度地图API,如何通过标注名 来删除指定标注
假设 一个 按钮,点一下 添加一个 标注并有标注名,然后 我在 text框里面,输入指定名字 ,来删除该标注
比如:
写一个 函数 刚载入的时候 随机添加 25个点并赋予不同的名字,然后 用你说的方法是可以删除指定的点的,
但是 ,我这个是 载入完成后 ,通过 “button” 事件 进行 添加 的点,然后 再使用 该 删除 函数 就 删不掉指定的点。我JS不咋的,怀疑是不是 ,该函数 获取不到 后期添加的点。是不是得 类似 刷新一下 才能获取
删除 代码如下:
//删除指定点
function deletePoint()
var allOverlaya = map.getOverlays();
var zz = document.getElementById("bzm").value; //获取自定义 删除 点 名字
for (var i = 0; i < allOverlaya.length -1; i++)
if(allOverlaya[i].getLabel().content == zz)
map.removeOverlay(allOverlaya[i]);
return false;
//以上函数
方法一、给地图增加一个事件监听,addEventListener,当右击地图时,出现右键菜单,可删除标注。
方法二、给标注增加事件监听,右键点击标注,即可删除。
大概思路就这样,其实我也没试过,你可以参考一下。追问
比如:
写一个 函数 刚载入的时候 随机添加 25个点并赋予不同的名字,然后 用你说的方法是可以删除指定的点的,
但是 ,我这个是 载入完成后 ,通过 “button” 事件 进行 添加 的点,然后 再使用 该 删除 函数 就 删不掉指定的点。我JS不咋的,怀疑是不是 ,该函数 获取不到 后期添加的点。是不是得 类似 刷新一下 才能获取
删除 代码如下:
你的marker是怎么添加的?map.addOverlay(marker)?在你自己增加marker的时候加一句:
marker.enableMassClear();试试看。
百度地图api不能为每个标注添加自己的事件处理吗?
var map = new BMap.Map("container");
var point;
var myArray=new Array()
for(var i=1;i<10;i++)
point = new BMap.Point(116.404+(i/1000), 39.915+(i/1000));
myArray[i]=point;
map.centerAndZoom(point, 15);
map.addControl(new BMap.NavigationControl()); //导航
var marker;
for(var j=1;j<10;j++)
marker = new BMap.Marker(myArray[j]); // 创建标注
marker.addEventListener("click",function()
marker.openInfoWindow(new BMap.InfoWindow(i));
//this.openInfoWindow(new BMap.InfoWindow(i)); 这样效果一样的
);
marker.setLabel(new BMap.Label("我是百度,呵呵",offset:new BMap.Size(10,-40)));
map.addOverlay(marker);
// 将标注添加到地图中
显示信息窗口值都为10,说明前面9个marker的事件被覆盖,怎样才能为每个marker添加自己的事件处理内容而不被其他的覆盖呢?
var map = new BMap.Map("container");
var point;
var myArray=new Array()
for(var i=1;i<10;i++)
point = new BMap.Point(116.404+(i/1000), 39.915+(i/1000));
myArray[i]=point;
map.centerAndZoom(point, 15);
map.addControl(new BMap.NavigationControl()); //导航
var marker;
for(var j=1;j<10;j++)
addMarker(j);
// 将标注添加到地图中
function addMarker(k)
marker = new BMap.Marker(myArray[k]); // 创建标注
map.addOverlay(marker);
var infoWindow = new BMap.InfoWindow(k); // 创建信息窗口对象
marker.addEventListener("click", function()
this.openInfoWindow(infoWindow);
);
marker.setLabel(new BMap.Label("我是百度,呵呵",offset:new BMap.Size(10,-40)));
参考技术A for(var j=1;j<10;j++)
marker = new BMap.Marker(myArray[j]); // 创建标注
var n = i;
marker.addEventListener("click",(function()
return function(n)
marker.openInfoWindow(new BMap.InfoWindow(n));
)());
以上是关于百度地图API,如何通过标注名 来删除标注的主要内容,如果未能解决你的问题,请参考以下文章