Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if a latitude and longitude is within a circle in PHP

Original question Check if a latitude and longitude is within a circle

I would like to know how this can be achieved using PHP. I have an array of latitudes and longitudes and would like to test them against another array of latitudes/longitudes to give a true/false scenario

enter image description here

like image 465
Here we go again Avatar asked Sep 16 '25 21:09

Here we go again


1 Answers

I've prepared the sample code snippet for you. It's working well for me. Feel free to adapt with your own logic.

$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";
}

If the result of 'K' is less than 10Km, then you will get the result as "True". Otherwise 'False' will return as result.

like image 62
Gowri Shankar Balasubramaniam Avatar answered Sep 18 '25 18:09

Gowri Shankar Balasubramaniam