项目使用百度地图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}以上代码是根据两个坐标点的经纬度获取两点间距离的方法,对你应该会有所帮助,满意请采纳,谢谢。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用 1