Szukasz zasobów lub algorytm do obliczania następujących w app nawigacji:Obliczenia GPS/GIS: Algorytm przewidywania przyszłej pozycji na podstawie ruchu/mph?
Jeśli moja aktualna pozycja GPS jest (0,0) i ruszam 32 stopni na 15 mil na godzinę, w jaki sposób można obliczyć, co moje pozycja będzie za 10 sekund?
tj: GPSCoordinate predictedCoord = GPSCoordinate.FromLatLong(0, 0).AddByMovement(32, 15, TimeSpan.FromSeconds(10));
Edit: Aktualny kod na podstawie odpowiedzi poniżej:
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);
}
Jeżeli samochód jest w ruchu na ulicy może chcesz po ulicy zamiast ekstrapolacji liniowej. – CodesInChaos
@CodeInChaos w tym przypadku, chcę liniowy; ten nie bierze pod uwagę ścieżki naziemne (może później!) – Brandon
Kod w pierwszej odpowiedzi na http://stackoverflow.com/questions/3225803/calculate-endpoint-given-distance-bearing-starting-point
wytłumaczę ci wszystko – faruk