博客列表 > PHP计算两个坐标之间的距离

PHP计算两个坐标之间的距离

樂成的开发笔记
樂成的开发笔记 原创
2025年03月24日 11:17:36 816浏览

PHP计算两个坐标之间的距离

实例

public function calculateDistance($lat1, $lon1, $lat2, $lon2) {
    // 将角度转换为弧度
    $lat1Rad = deg2rad($lat1);
    $lon1Rad = deg2rad($lon1);
    $lat2Rad = deg2rad($lat2);
    $lon2Rad = deg2rad($lon2);

    // Haversine公式
    $earthRadius = 6371; // 地球半径,单位为公里
    $deltaLat = $lat2Rad - $lat1Rad;
    $deltaLon = $lon2Rad - $lon1Rad;

    $a = pow(sin($deltaLat / 2), 2) + cos($lat1Rad) * cos($lat2Rad) * pow(sin($deltaLon / 2), 2);
    $c = 2 * atan2(sqrt($a), sqrt(1 - $a));
    $distance = $earthRadius * $c;

    return $distance;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


实例

$distance = $this->calculateDistance($lat1, $lon1, $lat2, $lon2);
$return_distance = "距离您".round($distance,1)."km";
if($distance<1){
    $return_distance = "距离您".floor($distance*1000)."m";
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议