Korrekte Methode zum Finden der Entfernung zwischen zwei Koordinaten unter Verwendung der räumlichen Funktion in MySql

8

Ich versuche, die Entfernung zwischen zwei Orten zu berechnen, indem ich räumliche Funktionen sowohl in Mysql als auch in PostgresSQL verwende. Ich habe den Längen- und Breitengrad von Google übernommen. Die Details sind unter

Ort eins - Breite: 42,260223; Lon: -71.800010

Ort zwei - Breite: 42,245647; Lon: -71.802521

SQL Query verwendet:

SELECT DISTANCE (GEOMFROMTEXT ('Punkt (42.260223 -71.800010)'), GEOMFROMTEXT ('Punkt (42.245647 -71.802521)'))

Beide Datenbanken liefern das gleiche Ergebnis 0.014790703059697. Aber wenn ich die Entfernung in anderen Systemen berechne, sind die Ergebnisse unterschiedlich. Bitte beachten Sie die folgenden Links

Ссылка = 1,44 Meilen

Ссылка = 1,53 Meilen

Ich möchte also wissen, ob meine Berechnungsmethode / Abfrage richtig ist oder nicht. Und wenn es falsch ist, was ist der richtige Weg, um die db für die Entfernung abzufragen.

    
Vic 16.03.2011, 11:59
quelle

2 Antworten

8

Die einfache Antwort ist die Haversine-Formel. Dies setzt voraus, dass die Erde eine Kugel ist, was sie nicht ist, aber es ist keine schlechte Annäherung. Dies wird mit vielen anderen Details in dieser Präsentation beschrieben:

Ссылка

    
Joshua Martell 26.08.2011 02:27
quelle
5

Im obigen Fall wendet MySql einfach den Satz des Pythagoras an: c2 = a ^ 2 + b ^ 2. In diesem speziellen Fall ist SQRT ((42.245647 - 42.260223) ^ 2 + (-71.802521 ^ 2 - -71.800010) ^ 2) = 0.014790703.

Es gibt tatsächlich zwei Probleme bei der Verwendung der MySql-Abstandsfunktion für die Entfernung mit Koordinaten auf einer Kugel. (1) MySql ist die Distanz auf einer Ebene und nicht auf einer Kugel. (2) Das Ergebnis kommt in einer Form von Graden zurück, nicht in Meilen. Um eine echte, sphärische Entfernung in Meilen, km, ft usw. zu erhalten, müssen Sie Ihre Breiten- und Längengrade in die Einheiten umwandeln, die Sie messen möchten, indem Sie den Radius von einer Linie durch den Mittelpunkt der Erde für die Breite (n) bestimmen. du machst.

Um eine echte Maßnahme zu erhalten, ist es ziemlich kompliziert, viele Einzelpersonen und Firmen haben daraus Karriere gemacht.

    
Rick 26.08.2011 01:55
quelle

Tags und Links