Heim > Datenbank > MySQL-Tutorial > Wie finde ich mithilfe von Breiten- und Längengraden den nächstgelegenen geografischen Datensatz innerhalb eines bestimmten Umkreises?

Wie finde ich mithilfe von Breiten- und Längengraden den nächstgelegenen geografischen Datensatz innerhalb eines bestimmten Umkreises?

Susan Sarandon
Freigeben: 2025-01-18 16:07:13
Original
926 Leute haben es durchsucht

How to Find the Nearest Geographic Record Within a Specified Radius Using Latitude and Longitude?

Bestimmen Sie die Entfernung in der Breiten- und Längengraddatenbank

Bei gegebenen Breiten- und Längengradkoordinaten besteht die Aufgabe darin, den Datensatz mit dem nächstgelegenen übereinstimmenden Breiten- und Längengrad aus der Datenbank abzurufen und gleichzeitig sicherzustellen, dass die Entfernung innerhalb eines bestimmten Schwellenwerts bleibt. Wenn die Entfernung den angegebenen Grenzwert überschreitet, sollten keine Datensätze zurückgegeben werden.

Die bereitgestellte Tabellenstruktur enthält Spalten für Längengrad, Breitengrad und andere standortbezogene Informationen. Dazu verwenden wir die folgende SQL-Abfrage:

<code class="language-sql">SELECT latitude, longitude, SQRT(
    POW(69.1 * (latitude - [startlat]), 2) +
    POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM TableName HAVING distance < [radius]</code>
Nach dem Login kopieren

In dieser Abfrage stellen [startlat] und [startlng] die Startkoordinaten der gemessenen Distanz dar. Entfernungsberechnungen werden mithilfe der Haversine-Formel durchgeführt, die den Abstand zwischen zwei Punkten auf einer Kugel (in diesem Fall der Erde) genau bestimmt. Die Funktion POW() quadriert die Differenz zwischen Start- und Zielkoordinaten und die Funktion COS() berücksichtigt die Erdkrümmung. Das Endergebnis ist die Entfernung in Meilen.

Durch die Einbindung der HAVING-Klausel in die Bedingung „Abstand < [Radius]“ stellen wir sicher, dass nur Datensätze zurückgegeben werden, deren Abstand kleiner als der angegebene Radius [Radius] ist.

Das obige ist der detaillierte Inhalt vonWie finde ich mithilfe von Breiten- und Längengraden den nächstgelegenen geografischen Datensatz innerhalb eines bestimmten Umkreises?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage