c - 如何从我的 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;
}
}
}
}