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

2018-08-24 11:00 By "Powerless" 2817 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

  • 分布式服务限流
    Posted on 2020-02-07 18:57
  • 有状态服务VS无状态服务
    Posted on 2020-02-07 18:18
  • 企业级PAAS云平台几个关键问题和挑战
    Posted on 2019-06-12 18:33
  • MySQL 单库后期分库策略
    Posted on 2019-08-19 14:31
  • 关于HTTPS的五大误区
    Posted on 2020-02-02 01:10
  • Redis七大经典问题
    Posted on 2021-05-27 11:14
  • PHP扩展GD安装
    Posted on 2018-10-29 18:29
  • PHP实现精确发布时间
    Posted on 2018-12-06 21:00