php获取两经纬度之间的距离

<?php 
/**
 * 获取指定经纬度之间距离
 *
 * 将地球假定为圆形,数据精准度有限
 * @param      integer  $lat1   纬度 1
 * @param      integer  $lng1   经度 1
 * @param      integer  $lat2   纬度 2
 * @param      integer  $lng2   经度 2
 *
 * @return     integer  指定位置距离 单位:米
 */
function get_distance($lat1, $lng1, $lat2, $lng2){
    $PI = 3.14159265358979323; // 圆周率
    $R = 6371229; // 地球的半径
    $x = $y = $distance = 0;

    $x = ($lng2 - $lng1) * $PI * $R * cos((($lat1 + $lat2) / 2) * $PI / 180) / 180;
    $y = ($lat2 - $lat1) * $PI * $R / 180;

    $distance = hypot($x, $y);
    return $distance;
}

// 北京到潍坊距离
echo get_distance(39.914889,116.403874,36.713212,119.168138);

Tags: PHP

仅有一条评论

  1. 距离大约:430023.66710113M

添加新评论