Recherche de ressources ou d'un algorithme pour calculer ce qui suit dans une application de navigation:Calculs GPS/SIG: Algorithme pour prédire la position future en fonction du mouvement/mph?
Si ma position GPS actuelle est (0,0) et que je suis à 32 degrés à 15 miles par heure, comment puis-je calculer la position sera dans 10 secondes?
-à-dire: GPSCoordinate predictedCoord = GPSCoordinate.FromLatLong(0, 0).AddByMovement(32, 15, TimeSpan.FromSeconds(10));
Edit: Code actuel basé sur la réponse ci-dessous:
public GPSCoordinate AddMovementMilesPerHour(double heading, double speedMph, TimeSpan duration)
{
double x = speedMph * System.Math.Sin(heading * pi/180) * duration.TotalSeconds/3600;
double y = speedMph * System.Math.Cos(heading * pi/180) * duration.TotalSeconds/3600;
double newLat = this.Latitude + 180/pi * y/earthRadius;
double newLong = this.Longitude + 180/pi/System.Math.Sin(this.Latitude * pi/180) * x/earthRadius;
return GPSCoordinate.FromLatLong(newLat, newLong);
}
Si la voiture est en mouvement sur une rue, vous voudrez peut-être suivre la rue au lieu de extrapolant linéairement. – CodesInChaos
@CodeInChaos dans ce cas, je veux linéaire; cela ne prend des chemins de terre en compte (peut-être plus tard!) – Brandon
pas le code dans la première réponse sur http://stackoverflow.com/questions/3225803/calculate-endpoint-given-distance-bearing-starting-point
Je vais vous expliquer tout ça – faruk