꧁꧂神仙-_-爸爸꧁꧂
2021-06-03 11:08
采纳率: 50%
浏览 167

使用vue-baidu-map组件如何判断点是否在圆形区域内?

项目使用百度地图vue-baidu-map组件,需求是要根据半径画出圆形范围并判断圆形区域内marker点的数量

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • CSDN专家-林老师 2021-06-05 16:09
    已采纳
    // 根据经纬度获取两点间距离
    function getDistance(point1, point2) {
        // 经纬度转换成三角函数中度分秒形式
        let radLat1 = point1.lat * Math.PI / 180
        let radLat2 = point2.lat * Math.PI / 180
        let radLng1 = point1.lng * Math.PI / 180
        let radLng2 = point2.lng * Math.PI / 180
        let diffLat = radLat1 - radLat2
        let diffLng = radLng1 - radLng2
        // 球面两点间距离公式
        let distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(diffLat/2),2) +
        Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(diffLng/2),2))) 
        distance *= 6378.137 // 地球赤道半径
        // 换算成公里数输出
        distance = Math.round(distance * 10000) / 10000 
        return distance
    }
    
    // point1 = {lat: number, lng: number}
    // point2 = {lat: number, lng: number}

    以上代码是根据两个坐标点的经纬度获取两点间距离的方法,对你应该会有所帮助,满意请采纳,谢谢。

    参考资料:https://baike.baidu.com/item/%E7%90%83%E9%9D%A2%E8%B7%9D%E7%A6%BB%E5%85%AC%E5%BC%8F/5374455?fr=aladdin

    已采纳该答案
    1 打赏 评论
  • 易书生 2021-06-03 11:15

    那要根据经纬度来做计算了呀,

    可以给后端当前的经纬度及半径,后端返回marker的数据的时候添加一个属性是否在半径内

    打赏 评论
  • 风雪一更 2021-06-03 11:17

    .

    打赏 评论
  • 有问必答小助手 2021-06-03 15:46

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    打赏 评论
  • 雪狼之夜 2021-06-04 13:42

    圆心坐标xy减去点Xy坐标,是否小于等于圆半径

    打赏 评论

相关推荐 更多相似问题