小弟我在百度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使用的不对,你试试这个


 var marker = new BMap.Marker(new BMap.Point(116.404, 39.915)); // 创建点
    marker.addEventListener('click', function(e){
            var p = this.getPosition();
            alert(p.lat)
    });

------解决思路----------------------
引用:
我的意思是说我添加标注的时候把坐标保存了在数组里,然后我在标注的鼠标右击事件里想删除选择的这个点, marker.addEventListener('rightclick', function (e),事件会返回一个e,但是它返回的这个e.point.lat和px0.lat不相同,e.point.lng和px0.lng不相同,结果在保存的数组里没有和返回的e的坐标相同的,很是无语,不知道该怎么删除了


为什么一定要用经纬度移除覆盖物呢?
e里的经纬度是右键事件发生时右键所在的位置,不是覆盖物所在的位置。

map.removeOverlay(e.target);//这样就可以清楚