計算兩組經緯度座標間的距離
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /** * 計算兩組經緯度座標間的距離 * params:lat1緯度1,lng1經度1,lat2緯度2,lng2經度2,len_type(1:m|2:km); * Echo GetDistance($lat1,$lng1,$lat2,$lng2).'米'; */ function GetDistance( $lat1 , $lng1 , $lat2 , $lng2 , $len_type =1, $decimal =2){ $EARTH_RADIUS =6378.137; //地球半徑,假設地球是規則的球體 $PI =3.1415926; //圓周率 $radLat1 = $lat1 * $PI / 180.0; $radLat2 = $lat2 * $PI / 180.0; $a = $radLat1 - $radLat2 ; $b = ( $lng1 * $PI / 180.0) - ( $lng2 * $PI / 180.0); $s = 2 * asin(sqrt(pow(sin( $a /2),2) + cos ( $radLat1 ) * cos ( $radLat2 ) * pow(sin( $b /2),2))); $s = $s * $EARTH_RADIUS ; $s = round ( $s *1000); if ( $len_type >1){ $s /= 1000; } return round ( $s , $decimal ); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!