GPS/GIS Calculations: Algorithm to predict future position based on movement/mph?

后端 未结 2 1729
一个人的身影
一个人的身影 2021-02-06 06:21

Looking for resources or algorithm to calculate the following in a navigation app:

If my current GPS position is (0,0) and I\'m heading 32 degrees at 15 miles per hour,

2条回答
  •  無奈伤痛
    2021-02-06 07:14

    Here is the complete parametric answer :

    variables :

    • heading : heading (i.e. backwards angle from azimuth 0°, in degrees)
    • speed : velocity (i.e. norm of the speed vector, in miles/hour)
    • lat0, lon0 : initial coordinates in degrees
    • dtime : time interval from the start position, in seconds
    • lat, lon : predicted coordinates in degrees
    • pi : the pi constant (3.14159...)
    • Rt : Earth radius in miles (6378137.0 meters which makes 3964.037911746 miles)

    In an (East, North) local frame, the position after the time interval is :

    x = speed * sin(heading*pi/180) * dtime / 3600;
    y = speed * cos(heading*pi/180) * dtime / 3600;
    

    (with coordinates in miles)

    From there you can compute the new position in the WGS84 frame (i.e. latitude and longitude) :

    lat = lat0 + 180 / pi * y / Rt;
    lon = lon0 + 180 / pi / sin(lat0*pi/180) * x / Rt;
    

    Edit : corrected the last line : *sin(phi) to /sin(phi)

提交回复
热议问题