Как я могу получить направление gps из моего кода libgps?

#c #gps #coordinates

Вопрос:

У меня есть код libgps для повторного определения широты и долготы. В любом случае, я хотел бы рассчитать направление gps, определяемое как «направление компаса, в котором движется или должно двигаться устройство, измеренное в градусах от Магнитного Севера и/или Истинного Севера». Я не нашел ни одного примера gpslib об этом, и я не знаю, как это сделать. Вы можете мне помочь, пожалуйста? Вот мой код:

 int rc;
struct timeval tv;

struct gps_data_t gps_data;
if ((rc = gps_open("localhost", "2947", amp;gps_data)) == -1)
{
    printf("code: %d, reason: %sn", rc, gps_errstr(rc));
    return EXIT_FAILURE;
}
gps_stream(amp;gps_data, WATCH_ENABLE | WATCH_JSON, NULL);*/

while (gps_coordinates == 0)
{
    if (gps_waiting(amp;gps_data, 500000))
    {
        if ((rc = gps_read(amp;gps_data)) == -1)
        {
            debug_level > 0 amp;amp; printf("error occured reading gps data. code: %d, reason: %sn", rc, gps_errstr(rc));
        }
        else
        {
            if ((gps_data.status == STATUS_FIX) amp;amp;
                (gps_data.fix.mode == MODE_2D || gps_data.fix.mode == MODE_3D) amp;amp;
                !isnan(gps_data.fix.latitude) amp;amp;
                !isnan(gps_data.fix.longitude))
            {
                gettimeofday(amp;tv, NULL);
                debug_level == 2 amp;amp; printf("Data from GPSD -> latitude: %f, longitude: %fn", gps_data.fix.latitude, gps_data.fix.longitude);
                gps_latitude = gps_data.fix.latitude;
                gps_longitude = gps_data.fix.longitude;
                gps_coordinates = 1;
            }
        }
    }
}