百度地图怎么拿到所有当前坐标的marker?

作者站长头像
站长
· 阅读数 9

在百度地图有很多的marker,但是有些点离得非常近,会覆盖在一起,这时候只能点击到最上面的,请问怎样才能点击到覆盖了的marker吗?我是想着要是能够点击的时候能拿到所有覆盖的marker就可以把他们放到一个div去显示,然后再点击当中的一个li。但是现在问题是:不知道怎么才能拿到这些marker百度地图怎么拿到所有当前坐标的marker?记录,已完成,通过点击marker的事件的时候判断当前点击的坐标与所有的marker距离少于100米的都列出来,再次点击列表里面的某一个marker

let arr = []
arr = markerArr.filter(item=>{
    return map.getDistance(item.point,marker.point) <= 100;//过滤返回与当前距离少于100米的所有marker对象
})

百度地图怎么拿到所有当前坐标的marker?

回复
1个回答
avatar
test
2024-07-13

首先,地图上所有marker的经纬度坐标你是知道的

可以监听地图的点击事件,事件中会有一个经纬度坐标,代表你点击的地理位置,然后轮询地图上所有的marker,判断marker坐标和点击位置的距离,距离小于你设置的一个阈值,就显示在列表中,甚至可以根据距离远近进行一个排序

至于距离的计算,多种多样,看自己选择了,可以计算点与点的经纬度距离,勾股定理计算就行,也可以使用map.getDistance返回两点之间的距离(单位是米),也可以使用pointToPixel将点转化为屏幕坐标,然后计算两点之间的像素距离

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容