我的意思是说我添加标注的时候把坐标保存了在数组里,然后我在标注的鼠标右击事件里想删除选择的这个点, er.addEventListener('rightclick', function (e),事件会返回一个e,但是它返回的这个e.point.lat和px0.lat不相同,e.point.lng和px0.lng不相同,结果在保存的数组里没有和返回的e的坐标相同的,很是无语,不知道该怎么删除了
我想可能是楼主点击获取坐标的api使用的不对,你试试这个 var er = new BMap.Marker(new BMap.Point(116.404, 39.915)); // 创建点 er.addEventListener('click', function(e){ var p = this.getPosition(); alert(p.lat) });
不太懂你意思
是不是说e.point.lat和px0.lat相同,e.point.lng和px0.lng相同时,e.point和px0却不同?
如果是的话请看以下例子var a={lng:1,lat:2,other:3};
var b={lng:1,lat:2};
alert(a.lng==b.lng);
alert(a.lat==b.lat);
alert(a==b);//a多一个other属性
不太懂你意思
是不是说e.point.lat和px0.lat相同,e.point.lng和px0.lng相同时,e.point和px0却不同?
如果是的话请看以下例子var a={lng:1,lat:2,other:3};
var b={lng:1,lat:2};
alert(a.lng==b.lng);
alert(a.lat==b.lat);
alert(a==b);//a多一个other属性
晕,这下玩大了,早知道自己先测下了。
事后一测才想起来对象本来就不能直接比较。
你直接用属性比较就好了。
var er = new BMap.Marker(new BMap.Point(116.404, 39.915)); // 创建点
er.addEventListener('click', function(e){
var p = this.getPosition();
alert(p.lat)
});
为什么一定要用经纬度移除覆盖物呢?
e里的经纬度是右键事件发生时右键所在的位置,不是覆盖物所在的位置。map.removeOverlay(e.target);//这样就可以清楚