diff options
author | Charles Curley <charlescurley@users.noreply.github.com> | 2017-11-11 13:10:51 -0700 |
---|---|---|
committer | Pierre GRANDIN <pgrandin@users.noreply.github.com> | 2017-11-11 12:10:51 -0800 |
commit | b004c7216c7c41a270cb08476538e96537a2b7da (patch) | |
tree | 9badf057b4c73b175edb4aed85f2fa3821c593d3 | |
parent | a1671c7f85bba03f4ab510c325123bf267273315 (diff) | |
download | navit-b004c7216c7c41a270cb08476538e96537a2b7da.tar.gz |
fix:gtk:Fix imperial factors (#367)
* Use correct conversion factors for a more accurate display. Also,
introduced some new conversion factors in navigation.h.
modified: navit/gui/gtk/gui_gtk_statusbar.c
modified: navit/navigation.h
modified: navit/navit.c
* Use the conversion factor #define instead of a hard coded value.
modified: navit/vehicle/gpsd/vehicle_gpsd.c
-rw-r--r-- | navit/gui/gtk/gui_gtk_statusbar.c | 4 | ||||
-rw-r--r-- | navit/navigation.h | 4 | ||||
-rw-r--r-- | navit/navit.c | 2 | ||||
-rw-r--r-- | navit/vehicle/gpsd/vehicle_gpsd.c | 4 |
4 files changed, 9 insertions, 5 deletions
diff --git a/navit/gui/gtk/gui_gtk_statusbar.c b/navit/gui/gtk/gui_gtk_statusbar.c index aa70c6332..5497f9a9c 100644 --- a/navit/gui/gtk/gui_gtk_statusbar.c +++ b/navit/gui/gtk/gui_gtk_statusbar.c @@ -123,7 +123,7 @@ statusbar_route_update(struct statusbar_priv *this, struct navit *navit, struct map_rect_destroy(mr); sprintf(buffer,_("Route %4.1f%s %02d:%02d ETA" ), - imperial == TRUE ? route_len / METERS_PER_MILE : route_len/1000, + imperial == TRUE ? route_len * (KILOMETERS_TO_MILES/1000.00) : route_len/1000, imperial == TRUE ? "mi" : "km", eta_tm ? eta_tm->tm_hour : 0 , eta_tm ? eta_tm->tm_min : 0); @@ -163,7 +163,7 @@ statusbar_route_update(struct statusbar_priv *this, struct navit *navit, struct imperial ? height * FEET_PER_METER : height, imperial == TRUE ? "\'" : "m", direction, dir, - imperial == TRUE ? speed / (METERS_PER_MILE / 1000) : speed, /* hard-coded. Ugly */ + imperial == TRUE ? speed * KILOMETERS_TO_MILES : speed, imperial == TRUE ? " mph" : "km/h" ); diff --git a/navit/navigation.h b/navit/navigation.h index 28faa015c..789d4fcbf 100644 --- a/navit/navigation.h +++ b/navit/navigation.h @@ -22,7 +22,9 @@ #define FEET_PER_METER 3.2808399 #define FEET_PER_MILE 5280 -#define METERS_PER_MILE 1609 +#define KILOMETERS_TO_MILES 0.62137119 /* Kilometers to miles */ +#define METERS_PER_MILE 1/(KILOMETERS_TO_MILES/1000.00) +#define MPS_TO_KPH 3.6 /* Meters per second to klicks/hr */ #ifdef __cplusplus extern "C" { diff --git a/navit/navit.c b/navit/navit.c index dbc58a277..768fb7d3b 100644 --- a/navit/navit.c +++ b/navit/navit.c @@ -1982,7 +1982,7 @@ navit_window_roadbook_update(struct navit *this_) if ( attr.u.num >= 2000 ) { param[1].value=g_strdup_printf("%5.1f %s", - imperial == TRUE ? (float)attr.u.num / METERS_PER_MILE : (float)attr.u.num / 1000, + imperial == TRUE ? (float)attr.u.num / (METERS_PER_MILE/1000.00) : (float)attr.u.num / 1000, imperial == TRUE ? _("mi") : _("km") ); } diff --git a/navit/vehicle/gpsd/vehicle_gpsd.c b/navit/vehicle/gpsd/vehicle_gpsd.c index a8c29cd97..27025c0a6 100644 --- a/navit/vehicle/gpsd/vehicle_gpsd.c +++ b/navit/vehicle/gpsd/vehicle_gpsd.c @@ -101,13 +101,15 @@ vehicle_gpsd_callback(struct gps_data_t *data, const char *buf, size_t len, } } } + dbg(lvl_debug,"data->set="LONGLONG_HEX_FMT"\n", (unsigned long long)data->set); if (data->set & SPEED_SET) { - priv->speed = data->fix.speed * 3.6; + priv->speed = data->fix.speed * MPS_TO_KPH; if(!isnan(data->fix.speed)) callback_list_call_attr_0(priv->cbl, attr_position_speed); data->set &= ~SPEED_SET; } + if (data->set & TRACK_SET) { priv->direction = data->fix.track; data->set &= ~TRACK_SET; |