Maison > développement back-end > C++ > Pourquoi mes calculs de distance géocoordonnée diffèrent-ils des autres applications ?

Pourquoi mes calculs de distance géocoordonnée diffèrent-ils des autres applications ?

Mary-Kate Olsen
Libérer: 2025-01-02 18:09:40
original
803 Les gens l'ont consulté

Why Do My GeoCoordinate Distance Calculations Differ from Other Applications?

Calcul de l'écart de distance entre les géocoordonnées

En essayant de calculer la distance entre les géocoordonnées, il a été observé que les résultats obtenus diffèrent de ceux générés par d'autres applications. La méthode de calcul employée en C# :

public static double Calculate(double sLatitude,double sLongitude, double eLatitude, double eLongitude) { ... }
Copier après la connexion

est basée sur la formule Haversine. Cependant, les résultats donnent une moyenne de 3,3 milles contre les 3,5 milles obtenus par d'autres applications.

Cause fondamentale de l'écart

Il est postulé que l'écart ne peut pas être attribué à la méthode de calcul elle-même mais plutôt aux détails de mise en œuvre.

Potentiel Solution

Pour un calcul de distance plus précis, envisagez d'utiliser la classe GeoCoordonnée introduite dans .NET Framework 4. Cette classe fournit la méthode GetDistanceTo, qui calcule directement la distance entre deux objets GeoCoordonnée :

// 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;
Copier après la connexion

Remarque : N'oubliez pas d'ajouter une référence à l'espace de noms System.Device.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal