百度地图删除标注 除覆盖物当调用map.removeOverlay或者map.clearOverlays方法时,API会自动将initialize方法返回的DOM元素进行移除。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 变量申明为全局的,在按钮事件中map.removeOverlay()要么你的button按钮点击事件放到addMarker中,这样也可以引用到变量 设为全局变量可以了,谢谢哦不过,把button的事件removeMarker放到addMarker中?这样button的onclick事件写removeMarker?这样写报错啊 function addMarker() { lng = document.getElementById("txtlng"); lat = document.getElementById("txtlat"); var icon = new BMap.Icon("http://api.map.baidu.com/img/ers.png", new BMap.Size(23, 25), { offset: new BMap.Size(10, 25), imageOffset: new BMap.Size(0, 0), // 设置图片偏移 anchor: new BMap.Size(10, 30), infoWindowAnchor: new BMap.Size(10, 0) }); //地址解析类 var gc = new BMap.Geocoder(); //初始化地图标记 var er = new BMap.Marker(new BMap.Point(lng.value, lat.value), { icon: icon }); //添加标记 map.addOverlay(er); //标记点击事件 er.addEventListener("click", function (e) { // map.removeOverlay(er); // er.dispose(); var opts = { width: 250, // 信息窗口宽度 height: 100, // 信息窗口高度 title: "test" // 信息窗口标题 } //获取地址信息 gc.getLocation(e.point, function (rs) { document.getElementById("txtlng").value = e.point.lng; document.getElementById("txtlat").value = e.point.lat; }); var infoWindow = new BMap.InfoWindow("World", opts); // 创建信息窗口对象 er.openInfoWindow(infoWindow, new BMap.Point(lng.value, lat.value)); // 打开信息窗口 }); document.getElementById('buttonid').onclick = function () { map.removeOverlay(er); } }这样出错?不可能吧。。 有没有靠谱点的方法啊。er采用全局变量适用于只有要求有一个er对象的情况,如果有多个,难道建n个全局er对象。百度api官方demo采用map.getOverlays方法,获取所有覆盖物对象,通过遍历所有对象找到指定的对象,经个人测试,理论上是可以,但实际是有bug,行不通的,不管通过标题或自定义id属性来定位到er对象,都是有问题的。个人感觉百度api不好用 面向对象的纯js分页组件 一段简单的js代码,高手来看看 验证文本框里不能输入特殊字符(!@ #$%^&*) 如何让 Iframe src页面里的链接失效 有没有办法知道一个对像的事件邦定了什么处理方法? 这样的字符串,如何取出数字,其实数字长度不固定,同时去除最后的米 页面刷新问题 如何校验上传附件大小,急!!! 主窗口控制弹出的子窗口的问题, 多个子窗口! 怎么实现 鼠标在相片上时会显示相片的一些资料 jquery的remove删除不了元素呀 select下拉框刷新以后回显值的问题
不过,把button的事件removeMarker放到addMarker中?这样button的onclick事件写removeMarker?这样写报错啊
lat = document.getElementById("txtlat");
var icon = new BMap.Icon("http://api.map.baidu.com/img/ers.png", new BMap.Size(23, 25), { offset: new BMap.Size(10, 25),
imageOffset: new BMap.Size(0, 0), // 设置图片偏移
anchor: new BMap.Size(10, 30),
infoWindowAnchor: new BMap.Size(10, 0)
});
//地址解析类
var gc = new BMap.Geocoder();
//初始化地图标记
var er = new BMap.Marker(new BMap.Point(lng.value, lat.value),
{ icon: icon });
//添加标记
map.addOverlay(er);
//标记点击事件
er.addEventListener("click", function (e) {
// map.removeOverlay(er);
// er.dispose(); var opts = {
width: 250, // 信息窗口宽度
height: 100, // 信息窗口高度
title: "test" // 信息窗口标题
}
//获取地址信息
gc.getLocation(e.point, function (rs) {
document.getElementById("txtlng").value = e.point.lng;
document.getElementById("txtlat").value = e.point.lat;
}); var infoWindow = new BMap.InfoWindow("World", opts); // 创建信息窗口对象
er.openInfoWindow(infoWindow, new BMap.Point(lng.value, lat.value)); // 打开信息窗口 });
document.getElementById('buttonid').onclick = function () { map.removeOverlay(er);
}
}
这样出错?不可能吧。。
百度api官方demo采用map.getOverlays方法,获取所有覆盖物对象,通过遍历所有对象找到指定的对象,经个人测试,理论上是可以,但实际是有bug,行不通的,不管通过标题或自定义id属性来定位到er对象,都是有问题的。
个人感觉百度api不好用