百度地图怎么拿到所有当前坐标的marker?
在百度地图有很多的marker,但是有些点离得非常近,会覆盖在一起,这时候只能点击到最上面的,请问怎样才能点击到覆盖了的marker吗?我是想着要是能够点击的时候能拿到所有覆盖的marker就可以把他们放到一个div去显示,然后再点击当中的一个li。但是现在问题是:不知道怎么才能拿到这些marker记录,已完成,通过点击marker的事件的时候判断当前点击的坐标与所有的marker距离少于100米的都列出来,再次点击列表里面的某一个marker
let arr = []
arr = markerArr.filter(item=>{
return map.getDistance(item.point,marker.point) <= 100;//过滤返回与当前距离少于100米的所有marker对象
})
回复
1个回答

test
2024-07-13
首先,地图上所有marker的经纬度坐标你是知道的
可以监听地图的点击事件,事件中会有一个经纬度坐标,代表你点击的地理位置,然后轮询地图上所有的marker,判断marker坐标和点击位置的距离,距离小于你设置的一个阈值,就显示在列表中,甚至可以根据距离远近进行一个排序
至于距离的计算,多种多样,看自己选择了,可以计算点与点的经纬度距离,勾股定理计算就行,也可以使用map.getDistance返回两点之间的距离(单位是米),也可以使用pointToPixel将点转化为屏幕坐标,然后计算两点之间的像素距离
回复

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