PHP检查纬度和经度是否在圆内

Her*_*ain 4 php geometry distance latitude-longitude

原始问题检查纬度和经度是否在圆内

我想知道如何使用 PHP 来实现这一点。我有一组纬度和经度,想根据另一个纬度/经度数组测试它们,以给出正确/错误的场景

在此输入图像描述

小智 7

我已经为您准备了示例代码片段。它对我来说效果很好。请随意适应您自己的逻辑。

$lat1 = "10.5900627";
$lon1 = "77.1933317";

$lat2 = "10.6068507";
$lon2 = "77.117246";

function distance($lat1, $lon1, $lat2, $lon2, $unit) 
{
  if (($lat1 == $lat2) && ($lon1 == $lon2)) {
    return 0;
  }
  else {
    $theta = $lon1 - $lon2;
    $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +  cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
    $dist = acos($dist);
    $dist = rad2deg($dist);
    $miles = $dist * 60 * 1.1515;
    $unit = strtoupper($unit);

    if ($unit == "K") {
      return ($miles * 1.609344);
    } else if ($unit == "N") {
      return ($miles * 0.8684);
    } else {
      return $miles;
    }
  }
}

if(distance($lat1, $lon1, $lat2, $lon2, "K") < 10)
{
  echo "True";
}
else
{
  echo "False";
}
Run Code Online (Sandbox Code Playgroud)

如果“K”的结果小于 10Km,那么您将得到“True”结果。否则将返回“False”结果。