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
Patricia ArquetteOriginal
2025-01-18 16:17:08477Durchsuche

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>
  • [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!

Stellungnahme:
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