]> err.no Git - mapper/commitdiff
Calculate true heading for simulator
authorKaj-Michael Lang <milang@onion.tal.org>
Fri, 25 Jan 2008 11:50:20 +0000 (13:50 +0200)
committerKaj-Michael Lang <milang@onion.tal.org>
Fri, 25 Jan 2008 11:50:20 +0000 (13:50 +0200)
src/gps.c

index fece5e4e7ea7ae18a31628986183a67aa336bf93..274b62afcfdf50346c4308a384c7e112a0de2105 100644 (file)
--- a/src/gps.c
+++ b/src/gps.c
@@ -307,12 +307,15 @@ static gboolean
 gps_simulate_move(Gps *gps)
 {
 static gdouble slat=0, slon=0;
+gdouble plat, plon;
 g_assert(gps);
 
 if (g_random_double()<0.5) {
        slat=g_random_double_range(-0.0003, 0.0003);
        slon=g_random_double_range(-0.0003, 0.0003);
 }
+plat=gps->data.lat;
+plon=gps->data.lon;
 gps->data.lat+=slat;
 gps->data.lon+=slon;
 BOUND(gps->data.lat, -80.0, 80.0);
@@ -321,8 +324,7 @@ BOUND(gps->data.lon, -80.0, 80.0);
 g_debug("Sim: %f %f\n", gps->data.lat, gps->data.lon);
 
 gps->data.speed=1+g_random_double_range(0.1, 10.0);
-gps->data.heading+=g_random_double_range(-4.0, 4.0);
-BOUND(gps->data.heading, 0, 359);
+gps->data.heading=calculate_course(plat, plon, gps->data.lat, gps->data.lon);
 gps->data.time=time(NULL);
 gps_data_integerize(&gps->data);
 track_add(&gps->data, FALSE);