PHP实现-计算两个坐标的距离

2018-08-24 11:00 By "Powerless" 3065 0 2

/**
 * 计算两个坐标之间的距离(米)
 * @param  [array]   $from  [起点坐标(经纬度)]
 * @param  [array]   $to    [终点坐标(经纬度)]
 * @return int
 */
private function getDistance($from,$to)
{
    sort($from);
    sort($to);
    $radius=6371393;
    $lat1=($from[0]* pi()) / 180;
    $lng1=($from[1]* pi()) / 180;
    $lat2=($to[0]* pi()) / 180;
    $lng2=($to[1]* pi()) / 180;
    $stepOne= pow(sin(($lat2-$lat1)/2),2) + cos($lat1) * cos($lat2) * pow(sin(($lng2-$lng1)/2),2);
    $stepTwo=2* asin(min(1, sqrt($stepOne)));
    return round($radius*$stepTwo);
}


评 论

View in WeChat

Others Discussion

  • 浏览器访问网站经历的步骤-Html
    Posted on 2018-11-28 18:48
  • TCP协议的特性
    Posted on 2019-04-26 16:46
  • HTTP头中隐藏PHP版本号
    Posted on 2021-01-11 16:38
  • Composer 异常 [ErrorException]
    Posted on 2019-11-25 17:55
  • PHP练习-移动数组内的0到最后并保持其他元素顺序不变
    Posted on 2020-08-14 20:32
  • 能创建多少个 TCP 连接?
    Posted on 2021-08-02 16:00
  • Mysql联合索引的最左前缀匹配原则
    Posted on 2018-08-25 15:00
  • PHP没你想的那么差
    Posted on 2021-12-17 15:40