根据两地经纬度计算两地之间的间距距离,并用php编写案例
技术  /  管理员 发布于 2年前   725
需求:已知当前用户地址位置坐标信息,计算目标坐标点的距离信息。
思路图:
计算公式:
W为纬度对应的弧度,J为经度对应的弧度,如上图所示
php案例:
/**
* 计算两点地理坐标之间的距离
* @param Decimal $lng1 起点经度
* @param Decimal $lat1 起点纬度
* @param Decimal $lng2 终点经度
* @param Decimal $lat2 终点纬度
* @param Int $unit 单位 1:米 2:公里
* @param Int $decimal 精度 保留小数位数
* @return Decimal
*/
public static function getlatlngspac($lng1, $lat1, $lng2, $lat2, $unit=1, $decimal=1){
$r = 6370.996; // 地球半径系数
$pi = 3.1415926; // 圆周率
$radLat1 = $lat1 * $pi / 180;
$radLat2 = $lat2 * $pi / 180;
$radLng1 = $lng1 * $pi / 180;
$radLng2 = $lng2 * $pi / 180;
$a = $radLat1 - $radLat2;
$b = $radLng1 - $radLng2;
$distance = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
$distance = $distance * $r * 1000;
if($unit==2){
$distance = $distance / 1000;
}
return round($distance, $decimal);
}
看看效果:
$lng1 = $wangdian['baiduapilng'];
$lat1 = $wangdian['baiduapilat'];
$lng2 = '113.62241';
$lag2 = '23.130767';
echo SelectOption::getlatlngspac($lng1,$lat1,$lng2,$lag2).'m';
业务功能:
博主 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..xiaoB 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..BUG4 在
你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..博主 在
go语言+beego框架中获取get,post请求的所有参数中评论 @ t1 直接在router.go文件中配就ok..Jade 在
如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号