解决方案 »

  1.   


    不太懂你意思
    是不是说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属性
      

  2.   


    不太懂你意思
    是不是说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属性
    晕,这下玩大了,早知道自己先测下了。
    事后一测才想起来对象本来就不能直接比较。
    你直接用属性比较就好了。
      

  3.   

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

  4.   

    我想可能是楼主点击获取坐标的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)
        });
      

  5.   


    为什么一定要用经纬度移除覆盖物呢?
    e里的经纬度是右键事件发生时右键所在的位置,不是覆盖物所在的位置。map.removeOverlay(e.target);//这样就可以清楚
      

  6.   

    如果一定要获取覆盖物经纬度的话要这样写e.target.point.lat
      

  7.   

    太感谢了,问题解决了,这个东西e.target,我看文档上只是删除一个点的,百度了好多也没有类似的例子,之前也木有做过百度地图方面的开发,总之,谢谢你