首页 > 解决方案 > 如何从我的 libgps 代码中获取 gps 航向?

问题描述

我有我的 libgps 代码来检索纬度和经度。无论如何,我想计算gps航向,定义为“设备行进或应该行进的罗盘方向,以磁北和/或真北的度数为单位”。我还没有找到任何关于此的 gpslib 示例,我不知道该怎么做。你能帮我吗?这是我的代码:

int rc;
struct timeval tv;

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

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

标签: cgpscoordinates

解决方案


推荐阅读