#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;
}
}
}
}