d = пройденное расстояние = скорость x время R = радиус Земли

ресурсы или алгоритм для расчета следующего в навигационном приложении:

Если моя текущая позиция GPS равна (0,0), и я направляюсь на 32 градуса со скоростью 15 миль в час, как я могу рассчитать, какая моя позиция будет через 10 секунд?

т.е .:GPSCoordinate predictedCoord = GPSCoordinate.FromLatLong(0, 0).AddByMovement(32, 15, TimeSpan.FromSeconds(10));

Редактировать: Текущий код основан на ответе ниже:

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);
}

Ответы на вопрос(0)

Ваш ответ на вопрос