根据两地经纬度计算两地之间的间距距离,并用php编写案例
技术  /  管理员 发布于 4年前   1084
需求:已知当前用户地址位置坐标信息,计算目标坐标点的距离信息。
思路图:
计算公式:
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';
业务功能:
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号