Heim > Datenbank > MySQL-Tutorial > Wie berechnet man die Entfernung zwischen zwei Städten mit MySQL?

Wie berechnet man die Entfernung zwischen zwei Städten mit MySQL?

Barbara Streisand
Freigeben: 2024-12-15 01:13:17
Original
361 Leute haben es durchsucht

How to Calculate the Distance Between Two Cities Using MySQL?

Entfernung zwischen geografischen Koordinaten mit MySQL berechnen

Frage:

Sie haben eine Tabelle mit Stadtdaten mit Breiten- und Längengrad Koordinaten. Aus dieser Tabelle müssen Sie die Entfernung zwischen zwei bestimmten Städten berechnen. Führen Sie uns durch den Prozess.

Antwort:

Um den Abstand zwischen zwei Punkten anhand ihrer Breiten- und Längengrade zu berechnen, können wir die Formel des sphärischen Kosinusgesetzes in MySQL verwenden. Hier ist eine detaillierte Lösung:

SELECT a.city AS from_city, b.city AS to_city,
   111.111 *
    DEGREES(ACOS(LEAST(1.0, COS(RADIANS(a.Latitude))
         * COS(RADIANS(b.Latitude))
         * COS(RADIANS(a.Longitude - b.Longitude))
         + SIN(RADIANS(a.Latitude))
         * SIN(RADIANS(b.Latitude))))) AS distance_in_km
  FROM city AS a
  JOIN city AS b ON a.id <> b.id
 WHERE a.city = 3 AND b.city = 7
Nach dem Login kopieren

In dieser Abfrage führen wir eine Selbstverknüpfung für die Städtetabelle durch, um die Koordinatenpaare für die beiden Städte abzurufen. Anschließend wenden wir die Formel des sphärischen Kosinusgesetzes an, um den Abstand zwischen ihnen zu berechnen, der in Kilometern angegeben wird.

Hinweis:

Wenn Sie den Abstand lieber im Gesetz haben möchten Meilen statt Kilometer, ersetzen Sie die Konstante 111,111 durch 69,0.

Alternativ für a Modernerer Ansatz:

Wie von Alexio Vay vorgeschlagen, können Sie die Funktion ST_Distance_Sphere() in MySQL verwenden, die eine präzise und effiziente Möglichkeit bietet, den Abstand zwischen zwei Punkten zu berechnen:

select ST_Distance_Sphere(
    point(-87.6770458, 41.9631174),
    point(-73.9898293, 40.7628267))
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie berechnet man die Entfernung zwischen zwei Städten mit MySQL?. 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