PHP MySql und Geolocation

Ich schreibe eine Site, die mit PHP und MySQL nach Orten im Umkreis von 40 Kilometern um einen Lat und Long sucht.

Ich frage mich, wie so etwas funktionieren würde?

Ich übergebe einen lat und long an den scrip und lasse ihn nur Orte herausziehen, die sich innerhalb von 25 Meilen vom lat und long von meiner Standortdatenbank befinden.

Was ist der beste Weg, dies zu tun?

EDIT: Ich habe diesen Code gefunden, um den Abstand zwischen 2 Punkten zu berechnen.

    function distance($lat1, $lon1, $lat2, $lon2, $unit) { 

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

Ist es eine Möglichkeit, diese Berechnung in der MYSQL-Suche durchzuführen, so dass ich nur zurückgeben kann, wenn miles = <25?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage