summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Curley <charlescurley@users.noreply.github.com>2017-11-11 13:10:51 -0700
committerPierre GRANDIN <pgrandin@users.noreply.github.com>2017-11-11 12:10:51 -0800
commitb004c7216c7c41a270cb08476538e96537a2b7da (patch)
tree9badf057b4c73b175edb4aed85f2fa3821c593d3
parenta1671c7f85bba03f4ab510c325123bf267273315 (diff)
downloadnavit-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.c4
-rw-r--r--navit/navigation.h4
-rw-r--r--navit/navit.c2
-rw-r--r--navit/vehicle/gpsd/vehicle_gpsd.c4
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;