计算两点地理坐标之间的距离
/** * 计算两点地理坐标之间的距离 * @param Decimal $origin_lng 起点经度 * @param Decimal $origin_lat 起点纬度 * @param Decimal $destination_lng 终点经度 * @param Decimal $destination_lat 终点纬度 * @param Int $decimal 精度 保留小数位数 * @return Decimal 单位 米 */ function get_map_distance($origin_lng, $origin_lat, $destination_lng, $destination_lat, $decimal=2) { //地球半径系数 $earth_radius = 6370.996; $radLat1 = deg2rad($origin_lat); $radLat2 = deg2rad($destination_lat); $radLng1 = deg2rad($origin_lng); $radLng2 = deg2rad($destination_lng); $a = abs($radLat1 - $radLat2); $b = abs($radLng1 - $radLng2); $distance = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2))); $distance = $distance * $earth_radius * 1000; echo round($distance, $decimal); } get_map_distance(120.104419,30.272353,120.21761,30.295641);
posted on 2018-03-19 11:31 loveking_阳 阅读(1749) 评论(0) 编辑 收藏 举报