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

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

Patricia Arquette
Freigeben: 2025-01-18 16:17:08
Original
474 Leute haben es durchsucht

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

Abfrage zum Ermitteln des nächstgelegenen Breiten- und Längengrads mithilfe von SQL

In diesem Artikel wird erläutert, wie Sie mithilfe von SQL den nächstgelegenen Längen- und Breitengrad innerhalb eines bestimmten Bereichs einer bestimmten Referenzkoordinate aus der Datenbank abrufen.

Problembeschreibung:

Sie kennen den Breiten- und Längengradwert und möchten den Datensatz in der Datenbank extrahieren, der dem Breiten- und Längengrad am besten entspricht. Es gibt jedoch einen Entfernungsschwellenwert: Wenn die berechnete Entfernung diesen Schwellenwert überschreitet, sollten keine Daten abgerufen werden.

Tabellenstruktur:

列名 数据类型
id 整数
纬度 十进制
经度 十进制
地名 字符串
城市 字符串
国家 字符串
字符串
邮编 整数
海拔 整数

Abfrageanweisung:

Um diese Aufgabe zu erfüllen, verwenden wir die folgende SQL-Abfrage:

<code class="language-sql">SELECT 纬度, 经度, SQRT(
    POW(69.1 * (纬度 - [startlat]), 2) +
    POW(69.1 * ([startlng] - 经度) * COS(纬度 / 57.3), 2)) AS distance
FROM 表名称 HAVING distance < 25
ORDER BY distance ASC;</code>
Nach dem Login kopieren
  • [startlat]: Startbreitengrad für die Entfernungsmessung.
  • [startlng]: Der Startlängengrad für die Entfernungsmessung.
  • 25: Maximal zulässiger Entfernungsschwellenwert in Kilometern.

Anleitung:

Diese Abfrage verwendet die Großkreisentfernungsformel, um die Entfernung zwischen den Referenzkoordinaten ([startlat], [startlng]) und jedem Datensatz in der Tabelle zu berechnen. Wenn die berechnete Entfernung unter dem angegebenen Schwellenwert liegt (in diesem Beispiel 25 Kilometer), wird der Datensatz in die Ergebnisse einbezogen. Die Abfrage sortiert die Ergebnisse außerdem in aufsteigender Reihenfolge nach der Entfernung, um sicherzustellen, dass die nächstgelegenen Datensätze zuerst zurückgegeben werden.

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