当前位置:  首页  >  PHP教程  >  PHP 基础  >  基础教程

PHP计算两组经纬度坐标之间的距离

PHP计算两组经纬度坐标之间的距离计算两组经纬度坐标之间的距离

定义π

1
2
define('PI',3.1415926535898);
define('EARTH_RADIUS',6378.137);


计算两组经纬度坐标 之间的距离

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/
 计算两组经纬度坐标 之间的距离
 params :lat1 纬度1; lng1 经度1; lat2 纬度2; lng2 经度2; len_type (1:m or 2:km);
 return m or km
/
function GetDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2) {
    $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);
}



获取两个坐标之间的距离

1
2
$a =  GetDistance(20.035556,110.33269,20.046521,110.343057);
echo $a;
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有