小弟我在百度map上标注了好多覆盖物,小弟我现在想删除某个选中的标注
我在百度地图上标注了好多覆盖物,我现在想删除某个选中的标注
我在地图上标注了好多覆盖物,我现在想删除某个选中的标注
for (var i = 0; i < markerArr.length; i++) {
var px0 = markerArr[i].point;
var marker = new BMap.Marker(px0); // 创建点
每当我点击鼠标右键,点击删除,想实现删除选中的这个标注,markerArr[i].point保存的是添加的标注物的点的信息,我的思路是点击右键,获取选中点的坐标信息,在已保存的数组里找相同的坐标然后删除,但是单击标注右键获取的对象的点与数组里的比较,没有相同的,但是我判断的时候e.point和 数组里保存的坐标没有相同的,求解释,
//给marker添加鼠标右击事件
marker.addEventListener('rightclick', function (e) {
//添加鼠标右键事件
var menu = new BMap.ContextMenu()
var txtMenuItem = [
{
text: '删除',
callback: function () {
if (markerArr.length > 1) {
for (var i = 0; i < markerArr.length; i++) {
var px0 = markerArr[i].point;
每当我点击鼠标右键,点击删除,想实现删除选中的这个标注,markerArr[i].point保存的是添加的标注物的点的信息,我的思路是点击右键,获取选中点的坐标信息,在已保存的数组里找相同的坐标然后删除,但是单击标注右键获取的对象的点与数组里的比较,没有相同的,但是我判断的时候e.point和 数组里保存的坐标没有相同的,求解释,
alert(e.point.lat);
alert(e.point.lng);
alert(px0.lat);
alert(px0.lng);
if (e.point ==px0) {
alert("hello");
//alert(e.point.lng);
}
//alert(e.point.lat);
//alert(px0[0]);
}
}
}
}
];
for (var i = 0; i < txtMenuItem.length; i++) {
menu.addItem(new BMap.MenuItem(txtMenuItem[i].text, txtMenuItem[i].callback, 100));
}
this.addContextMenu(menu);
});
map.addOverlay(marker);
}
------解决思路----------------------
我想可能是楼主点击获取坐标的api使用的不对,你试试这个
------解决思路----------------------
为什么一定要用经纬度移除覆盖物呢?
e里的经纬度是右键事件发生时右键所在的位置,不是覆盖物所在的位置。
我在地图上标注了好多覆盖物,我现在想删除某个选中的标注
for (var i = 0; i < markerArr.length; i++) {
var px0 = markerArr[i].point;
var marker = new BMap.Marker(px0); // 创建点
每当我点击鼠标右键,点击删除,想实现删除选中的这个标注,markerArr[i].point保存的是添加的标注物的点的信息,我的思路是点击右键,获取选中点的坐标信息,在已保存的数组里找相同的坐标然后删除,但是单击标注右键获取的对象的点与数组里的比较,没有相同的,但是我判断的时候e.point和 数组里保存的坐标没有相同的,求解释,
//给marker添加鼠标右击事件
marker.addEventListener('rightclick', function (e) {
//添加鼠标右键事件
var menu = new BMap.ContextMenu()
var txtMenuItem = [
{
text: '删除',
callback: function () {
if (markerArr.length > 1) {
for (var i = 0; i < markerArr.length; i++) {
var px0 = markerArr[i].point;
每当我点击鼠标右键,点击删除,想实现删除选中的这个标注,markerArr[i].point保存的是添加的标注物的点的信息,我的思路是点击右键,获取选中点的坐标信息,在已保存的数组里找相同的坐标然后删除,但是单击标注右键获取的对象的点与数组里的比较,没有相同的,但是我判断的时候e.point和 数组里保存的坐标没有相同的,求解释,
alert(e.point.lat);
alert(e.point.lng);
alert(px0.lat);
alert(px0.lng);
if (e.point ==px0) {
alert("hello");
//alert(e.point.lng);
}
//alert(e.point.lat);
//alert(px0[0]);
}
}
}
}
];
for (var i = 0; i < txtMenuItem.length; i++) {
menu.addItem(new BMap.MenuItem(txtMenuItem[i].text, txtMenuItem[i].callback, 100));
}
this.addContextMenu(menu);
});
map.addOverlay(marker);
}
------解决思路----------------------
我想可能是楼主点击获取坐标的api使用的不对,你试试这个
var marker = new BMap.Marker(new BMap.Point(116.404, 39.915)); // 创建点
marker.addEventListener('click', function(e){
var p = this.getPosition();
alert(p.lat)
});
------解决思路----------------------
为什么一定要用经纬度移除覆盖物呢?
e里的经纬度是右键事件发生时右键所在的位置,不是覆盖物所在的位置。
map.removeOverlay(e.target);//这样就可以清楚