Looking for nguồn lực hay thuật toán để tính toán sau trong một ứng dụng chuyển hướng:Tính toán GPS/GIS: Thuật toán để dự đoán vị trí tương lai dựa trên chuyển động/mph?
Nếu vị trí GPS hiện tại của tôi là (0,0) và tôi đang hướng 32 độ ở mức 15 dặm một giờ, làm thế nào tôi có thể tính toán những gì tôi vị trí sẽ được trong 10 giây?
ví dụ: GPSCoordinate predictedCoord = GPSCoordinate.FromLatLong(0, 0).AddByMovement(32, 15, TimeSpan.FromSeconds(10));
Edit: mã hiện dựa trên câu trả lời dưới đây:
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);
}
Nếu xe đang chuyển động trên một đường phố bạn có thể muốn làm theo các đường phố thay vì ngoại suy tuyến tính. – CodesInChaos
@CodeInChaos trong trường hợp này, tôi muốn tuyến tính; này không mất con đường đất vào tài khoản (có thể sau!) – Brandon
Mã trong câu trả lời đầu tiên trên http://stackoverflow.com/questions/3225803/calculate-endpoint-given-distance-bearing-starting-point
sẽ giải thích cho bạn tất cả mọi thứ – faruk