PHP 通过经纬度计算距离
2023-03-07 09:47:16 时间
封装的方法:
传递参数:
地址1的纬度:lat1 ,经度:lng1,
地址2的纬度 lat2 ,经度:lng2,
/**
* 计算两个经纬度距离
*/
public function get_distance($lat1, $lng1, $lat2, $lng2){
$earthRadius = 6367000; //approximate radius of earth in meters
$lat1 = ($lat1 * pi() ) / 180;
$lng1 = ($lng1 * pi() ) / 180;
$lat2 = ($lat2 * pi() ) / 180;
$lng2 = ($lng2 * pi() ) / 180;
$calcLongitude = $lng2 - $lng1;
$calcLatitude = $lat2 - $lat1;
$stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) *
pow(sin($calcLongitude / 2), 2);
$stepTwo = 2 * asin(min(1, sqrt($stepOne)));
$calculatedDistance = $earthRadius * $stepTwo;
return round($calculatedDistance);
}
调用示例
$latitude=$this->request->param('latitude',39.4);//纬度
$longitude=$this->request->param('longitude',116);//经度
$distance=get_distance($latitude, $longitude, $v['latitude'], $v['longitude']);#计算2个坐标的距离
未经允许不得转载:肥猫博客 » PHP 通过经纬度计算距离
相关文章
- 聊聊 Amazon EKS 集群上的多租户设计注意事项
- 立足 AWS 对 Kubernetes 进行成本优化
- 深度解析 Amazon ECS 集群上的 Auto Scaling 机制
- 现已开放 — AWS 亚太地区(首尔)区域的第四个可用区
- Amazon Interactive Video Service – 将视频直播添加到您的应用程序和网站
- AWS 架构完善的框架 – 更新白皮书、工具和最佳实践
- 新推出 – 使用 Amazon SageMaker Ground Truth 标记视频
- 结合 Authing 实现 AWS 云上的身份认证与授权
- 使用 AWS Cloud Map 建立跨 Amazon EKS 集群 App Mesh
- 将 Apache Airflow 部署到云端
- 使用 AWS Batch 与 Amazon CloudWatch 规则调度并运行 Amazon RDS 作业
- 如何部署使用 Amazon Chime 开发工具包构建的实时事件解决方案
- AWS Solutions Constructs – 适用于 AWS CDK 的架构模式库
- 使用 Lambda Powertools 简化无服务器最佳实践
- 使用 AWS Cloud Development Kit 通过 Open Policy Agent 实现策略即代码
- 克服阻碍踏上云迁移和数字转型之旅
- 基于 AWS Config 实现持续合规:以多重身份验证的持续合规配置为例
- Python wxPython基本教程
- 借助 VPC Traffic Mirroring 构建网络入侵检测系统
- 基于 AWS CodeCommit 可规模化的敏捷开发实践