Cálculos GPS / GIS: ¿Algoritmo para predecir la posición futura en función del movimiento / mph?
Buscando recursos o algoritmos para calcular lo siguiente en una aplicación de navegación:
Si mi posición GPS actual es (0,0) y me dirijo a 32 grados a 15 millas por hora, ¿cómo puedo calcular cuál será mi posición en 10 segundos?
es decir.:GPSCoordinate predictedCoord = GPSCoordinate.FromLatLong(0, 0).AddByMovement(32, 15, TimeSpan.FromSeconds(10));
Editar: Código actual basado en la respuesta a continuación:
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);
}