加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何使用PHP检查某个坐标是否落在另一个坐标半径上

发布时间:2020-12-13 16:40:18 所属栏目:PHP教程 来源:网络整理
导读:我看到这么多功能,但它只适用于 MySQL或Postgresql.我想要 PHP的等效逻辑.我在做一些比较, 就像我有创建时正在生成的这些数据. Lat: 56.130366Long: -106.34677099999 之后,我想检查这个坐标是否落在另一个坐标的半径之内,然后返回true,否则为false. Lat: 57
我看到这么多功能,但它只适用于 MySQL或Postgresql.我想要 PHP的等效逻辑.我在做一些比较,
就像我有创建时正在生成的这些数据.
Lat: 56.130366
Long: -106.34677099999

之后,我想检查这个坐标是否落在另一个坐标的半径之内,然后返回true,否则为false.

Lat: 57.223366
Long: -106.34675644699
radius: 100000 ( meters )

提前致谢!

谢谢您的帮助.下面是一个示例函数,它需要两组经度和纬度坐标,并返回两者之间的距离.
function getDistance( $latitude1,$longitude1,$latitude2,$longitude2 ) {  
    $earth_radius = 6371;

    $dLat = deg2rad( $latitude2 - $latitude1 );  
    $dLon = deg2rad( $longitude2 - $longitude1 );  

    $a = sin($dLat/2) * sin($dLat/2) + cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * sin($dLon/2) * sin($dLon/2);  
    $c = 2 * asin(sqrt($a));  
    $d = $earth_radius * $c;  

    return $d;  
}

$distance = getDistance( 56.130366,-106.34677099999,57.223366,-106.34675644699 );
if( $distance < 100 ) {
    echo "Within 100 kilometer radius";
} else {
    echo "Outside 100 kilometer radius";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读