BMap点击标记后如何获取当前marker的经纬度?

UX欢欢 阅读 25

我在用百度地图BMap开发时,给地图加了几个marker,现在想在点击某个marker的时候拿到它自己的经纬度,但试了好几种方法都不对。比如我用marker.getPosition()却报错说undefined,是不是监听事件的方式有问题?

这是我的部分代码:

const marker = new BMap.Marker(new BMap.Point(116.404, 39.915));
marker.addEventListener('click', function(e) {
  console.log(e.point); // 这个能拿到点击位置,但不是marker本身的坐标
  console.log(this.getPosition()); // 这里报错,this好像不是marker?
});
map.addOverlay(marker);
我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
南宫江梅
闭包里直接用marker变量就行了,别折腾this

marker.addEventListener('click', function(e) {
console.log(marker.getPosition());
});


或者用e.target

marker.addEventListener('click', function(e) {
console.log(e.target.getPosition());
});


百度地图的事件回调里this指向有时候会抽风,直接引用变量最稳。
点赞 1
2026-02-28 18:13