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
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))
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!