Berechnung der Entfernungsdiskrepanz zwischen Geokoordinaten
Beim Versuch, die Entfernung zwischen Geokoordinaten zu berechnen, wurde festgestellt, dass die erhaltenen Ergebnisse von den generierten abweichen durch andere Anwendungen. Die in C# verwendete Berechnungsmethode:
public static double Calculate(double sLatitude,double sLongitude, double eLatitude, double eLongitude) { ... }
basiert auf der Haversine-Formel. Die Ergebnisse ergeben jedoch einen Durchschnitt von 3,3 Meilen im Vergleich zu den 3,5 Meilen, die bei anderen Anwendungen erzielt wurden.
Ursache der Diskrepanz
Es wird davon ausgegangen, dass die Diskrepanz möglicherweise nicht auf die Ursache zurückzuführen ist auf die Berechnungsmethode selbst, sondern vielmehr auf die Umsetzungsdetails.
Potenzial Lösung
Für eine genauere Entfernungsberechnung sollten Sie die Verwendung der in .NET Framework 4 eingeführten GeoCoordinate-Klasse in Betracht ziehen. Diese Klasse stellt die GetDistanceTo-Methode bereit, die die Entfernung zwischen zwei GeoCoordinate-Objekten direkt berechnet:
// Create GeoCoordinate objects var sCoord = new GeoCoordinate(sLatitude, sLongitude); var eCoord = new GeoCoordinate(eLatitude, eLongitude); // Calculate distance in meters using GetDistanceTo method var distanceMeters = sCoord.GetDistanceTo(eCoord); // Convert distance from meters to miles (if desired) var distanceMiles = distanceMeters / 1609.34;
Hinweis: Vergessen Sie nicht, einen Verweis auf den System.Device-Namespace hinzuzufügen.
Das obige ist der detaillierte Inhalt vonWarum unterscheiden sich meine GeoKoordinaten-Entfernungsberechnungen von denen anderer Anwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!