1. function rad($d)
    2. {
    3. return $d * M_PI / 180.0;
    4. }
    5. /**
    6. * 获取两个经纬度坐标点之间的距离,单位km,小数点后2位
    7. * @param string $lat1 纬度1
    8. * @param string $lng1 经度1
    9. * @param string $lat2 纬度2
    10. * @param string $lng2 经度2
    11. * @return string 距离
    12. */
    13. function getDistance($lng1, $lat1, $lng2, $lat2)
    14. {
    15. $EARTH_RADIUS = 6378.137; //地球半径
    16. $radLat1 = rad($lat1);
    17. $radLat2 = rad($lat2);
    18. $a = $radLat1 - $radLat2;
    19. $b = rad($lng1) - rad($lng2);
    20. $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)));
    21. $s = $s * $EARTH_RADIUS;
    22. $s = round($s * 100) / 100;
    23. return $s;
    24. }
    25. public static double getDistance(double longt1, double lat1, double longt2,double lat2) {
    26. double x, y, distance;
    27. x = (longt2 - longt1) * PI * R
    28. * Math.cos(((lat1 + lat2) / 2) * PI / 180) / 180;
    29. y = (lat2 - lat1) * PI * R / 180;
    30. distance = Math.hypot(x, y);
    31. return distance;
    32. }