Heim > Datenbank > MySQL-Tutorial > Wie finde ich mithilfe von SQL den nächstgelegenen Breiten- und Längengrad innerhalb eines bestimmten Radius?

Wie finde ich mithilfe von SQL den nächstgelegenen Breiten- und Längengrad innerhalb eines bestimmten Radius?

Barbara Streisand
Freigeben: 2025-01-18 15:56:10
Original
696 Leute haben es durchsucht

How to Find the Nearest Latitude and Longitude within a Given Radius Using SQL?

Finden Sie den nächstgelegenen Breiten- und Längengrad mithilfe einer SQL-Abfrage

Bei der Arbeit mit Geodaten müssen Sie häufig Datensätze basierend auf ihrer Entfernung von einem bestimmten Punkt abrufen. Dies kann durch die Verwendung einer SQL-Abfrage erreicht werden, die den Abstand zwischen zwei Punkten berechnet und Datensätze abruft, die in einen angegebenen Radius fallen.

Angenommen, eine Datenbanktabelle enthält die Breiten- und Längenkoordinaten verschiedener Standorte. Für einen bestimmten Breiten- und Längengrad möchten wir den Datensatz mit dem nächstgelegenen Breiten- und Längengrad abrufen. Wenn jedoch die Entfernung zwischen einem bestimmten Punkt und dem abgerufenen Datensatz den angegebenen Schwellenwert überschreitet, sollte der Datensatz nicht abgerufen werden.

Dazu können wir die folgende SQL-Abfrage verwenden:

<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 < 25 ORDER BY distance</code>
Nach dem Login kopieren

In dieser Abfrage stellen [startlat] und [startlng] den Breiten- und Längengrad eines bestimmten Punktes dar. Die Spalte distance verwendet die Haversine-Formel, um den Abstand zwischen einem bestimmten Punkt und jedem Datensatz in der Tabelle zu berechnen. Die HAVING-Klausel filtert Datensätze heraus, deren Abstand 25 (angegebener Schwellenwert) überschreitet. Schließlich sortiert die ORDER BY-Klausel die Ergebnisse nach Entfernung und gibt Datensätze mit dem nächstgelegenen Breiten- und Längengrad zuerst zurück.

Diese Abfrage ermöglicht das effiziente Abrufen von Standorten in der Nähe und stellt sicher, dass die zurückgegebenen Ergebnisse in den gewünschten Entfernungsbereich fallen.

Das obige ist der detaillierte Inhalt vonWie finde ich mithilfe von SQL den nächstgelegenen Breiten- und Längengrad innerhalb eines bestimmten Radius?. 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