$(SQLITE_LIBS) $(LIBCURL_LIBS) \
$(DBUS_GLIB_LIBS) $(BLUEZ_LIBS) \
$(GYPSY_LIBS) \
- -lm libgtkgps.la
+ -lm libgtkgps.la libosmdb.la
mapper_SOURCES = utils.c \
- db.c \
file.c \
gpx.c \
bt-bluez.c \
bt-maemo-marshal.c \
bt-maemo.c \
- latlon.c \
- osm-db.c \
gps.c \
gps-browse.c \
gps-nmea-parse.c \
mapper.c
osm2db_CFLAGS = $(EXPAT_CFLAGS) $(SQLITE_CFLAGS) $(GLIBGTK_CFLAGS)
+osm2db_LDADD = $(EXPAT_LIBS) $(SQLITE_LIBS) $(GLIBGTK_LIBS) $(BZ2_LIBS) -lm libosmdb.la
+osm2db_SOURCES = osm.c
-osm2db_LDADD = $(EXPAT_LIBS) $(SQLITE_LIBS) $(GLIBGTK_LIBS) $(BZ2_LIBS) -lm
-
-osm2db_SOURCES = latlon.c db.c osm.c
-
-lib_LTLIBRARIES = libgtkgps.la
+lib_LTLIBRARIES = libgtkgps.la libosmdb.la
libgtkgps_la_SOURCES = gtkgps.c gtkcompass.c
-
libgtkgps_la_CFLAGS = $(GLIBGTK_CFLAGS) $(defines)
libgtkgps_la_LIBADD = $(GLIBGTK_LIBS)
libgtkgps_la_LDFLAGS = -lm -no-undefined
+libosmdb_la_SOURCES = db.c osm-db.c latlon.c
+libosmdb_la_CFLAGS = $(GLIBGTK_CFLAGS) $(SQLITE_CFLAGS) $(defines)
+libosmdb_la_LIBADD = $(GLIBGTK_LIBS) $(SQLITE_LIBS)
+libosmdb_la_LDFLAGS = -lm -no-undefined
+
EXTRA_DIST = bt-maemo-marshal.list
BUILT_SOURCES = bt-maemo-marshal.h bt-maemo-marshal.c
gchar buffer[80], tmp1[16], tmp2[16];
unit2latlon(unitx, unity, lat, lon);
-lat_format(lat, tmp1);
-lon_format(lon, tmp2);
+lat_format(_degformat, lat, tmp1);
+lon_format(_degformat, lon, tmp2);
g_snprintf(buffer, sizeof(buffer),
"%s: %s\n"
gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
unit2latlon(unitx, unity, lat, lon);
- lat_format(lat, tmp1);
- lon_format(lon, tmp2);
+ lat_format(_degformat, lat, tmp1);
+ lon_format(_degformat, lon, tmp2);
p_latlon = g_strdup_printf("%s, %s", tmp1, tmp2);
gtk_table_attach(GTK_TABLE(table),
label = gtk_label_new(p_latlon),
#include "config-gconf.h"
#include "utils.h"
#include "mapper-types.h"
+#include "latlon.h"
#include "map.h"
#include "route.h"
#include "db.h"
gps_clear_text_fields();
} else {
/* latitude */
- lat_format(_gps.lat, buffer);
+ lat_format(_degformat, _gps.lat, buffer);
gtk_label_set_label(GTK_LABEL(text_lat), buffer);
/* longitude */
- lon_format(_gps.lon, buffer);
+ lon_format(_degformat, _gps.lon, buffer);
gtk_label_set_label(GTK_LABEL(text_lon), buffer);
/* speed */
gtk_label_set_label(GTK_LABEL(_sdi_tim), " --:--:-- ");
} else {
/* latitude */
- lat_format(_gps.lat, buffer);
+ lat_format(_degformat, _gps.lat, buffer);
gtk_label_set_label(GTK_LABEL(_sdi_lat), buffer);
/* longitude */
- lon_format(_gps.lon, buffer);
+ lon_format(_degformat, _gps.lon, buffer);
gtk_label_set_label(GTK_LABEL(_sdi_lon), buffer);
/* speed */
#define EARTH_RADIUS (3440.06479f)
+void
+latlon_init(void)
+{
+DEG_FORMAT_TEXT[DDPDDDDD] = "-dd.ddddd°";
+DEG_FORMAT_TEXT[DD_MMPMMM] = "-dd°mm.mmm'";
+DEG_FORMAT_TEXT[DD_MM_SSPS] = "-dd°mm'ss.s\"";
+DEG_FORMAT_TEXT[DDPDDDDD_NSEW] = "dd.ddddd° S";
+DEG_FORMAT_TEXT[DD_MMPMMM_NSEW] = "dd°mm.mmm' S";
+DEG_FORMAT_TEXT[DD_MM_SSPS_NSEW] = "dd°mm'ss.s\" S";
+}
+
static inline gdouble
magnitude(gdouble x1, gdouble y1, gdouble x2, gdouble y2)
{
c=c+360 % 360;
return c;
}
+
+void
+deg_format(DegFormat degformat, gdouble coor, gchar * scoor, gchar neg_char, gchar pos_char)
+{
+gdouble min;
+gdouble acoor=fabs(coor);
+
+switch (degformat) {
+ case DDPDDDDD:
+ g_sprintf(scoor, "%.5f°", coor);
+ break;
+ case DDPDDDDD_NSEW:
+ g_sprintf(scoor, "%.5f° %c", acoor,
+ coor < 0.f ? neg_char : pos_char);
+ break;
+
+ case DD_MMPMMM:
+ g_sprintf(scoor, "%d°%06.3f'",
+ (int)coor, (acoor - (int)acoor) * 60.0);
+ break;
+ case DD_MMPMMM_NSEW:
+ g_sprintf(scoor, "%d°%06.3f' %c",
+ (int)acoor, (acoor - (int)acoor) * 60.0,
+ coor < 0.f ? neg_char : pos_char);
+ break;
+
+ case DD_MM_SSPS:
+ min = (acoor - (int)acoor) * 60.0;
+ g_sprintf(scoor, "%d°%02d'%04.1f\"", (int)coor, (int)min,
+ ((min - (int)min) * 60.0));
+ break;
+ case DD_MM_SSPS_NSEW:
+ min = (acoor - (int)acoor) * 60.0;
+ g_sprintf(scoor, "%d°%02d'%04.1f\" %c", (int)acoor, (int)min,
+ ((min - (int)min) * 60.0),
+ coor < 0.f ? neg_char : pos_char);
+ break;
+ default:;
+}
+}
+
#define LATLON_MIN -2147483646
#define EARTH_RADIUS (3440.06479f)
+typedef enum {
+ DDPDDDDD,
+ DD_MMPMMM,
+ DD_MM_SSPS,
+ DDPDDDDD_NSEW,
+ DD_MMPMMM_NSEW,
+ DD_MM_SSPS_NSEW,
+ DEG_FORMAT_ENUM_COUNT
+} DegFormat;
+gchar *DEG_FORMAT_TEXT[DEG_FORMAT_ENUM_COUNT];
+
+#define lat_format(F, A, B) deg_format((F),(A), (B), 'S', 'N')
+#define lon_format(F, A, B) deg_format((F),(A), (B), 'W', 'E')
+
+void latlon_init(void);
+
gint32 lon2mp_int(gdouble lon);
gint32 lat2mp_int(gdouble lat);
gdouble calculate_distance(gdouble lat1, gdouble lon1, gdouble lat2, gdouble lon2);
guint32 lon2x(gdouble lon);
guint32 lat2y(gdouble lat);
+void deg_format(DegFormat degformat, gdouble coor, gchar *scoor, gchar neg_char, gchar pos_char);
+
#endif
gchar *COLORABLE_GCONF[COLORABLE_ENUM_COUNT];
GdkColor COLORABLE_DEFAULT[COLORABLE_ENUM_COUNT];
-typedef enum {
- DDPDDDDD,
- DD_MMPMMM,
- DD_MM_SSPS,
- DDPDDDDD_NSEW,
- DD_MMPMMM_NSEW,
- DD_MM_SSPS_NSEW,
- DEG_FORMAT_ENUM_COUNT
-} DegFormat;
-gchar *DEG_FORMAT_TEXT[DEG_FORMAT_ENUM_COUNT];
-
typedef enum {
SPEED_LOCATION_TOP_LEFT,
SPEED_LOCATION_TOP_RIGHT,
gnome_vfs_init();
timezone_init();
gpx_init();
- mapper_init_variables();
+ variables_init();
+ latlon_init();
track_init();
route_init();
mis=MAPPER_INIT_CONFIG;
rlat=sqlite3_column_double(sql.select_way_name_search, 3);
rlon=sqlite3_column_double(sql.select_way_name_search, 4);
- lat_format(rlat, tmp1);
- lon_format(rlon, tmp2);
+ lat_format(_degformat, rlat, tmp1);
+ lon_format(_degformat, rlon, tmp2);
dist=calculate_distance(lat, lon, rlat, rlon) * UNITS_CONVERT[_units];
gtk_list_store_append(*store, &iter);
#include "gps.h"
#include "map.h"
#include "mapper-types.h"
+#include "latlon.h"
#include "ui-common.h"
#include "settings.h"
#include "poi-gui.h"
}
/* Set the p_latlon string. */
-lat_format(poi->lat, tmp1);
-lon_format(poi->lon, tmp2);
+lat_format(_degformat, poi->lat, tmp1);
+lon_format(_degformat, poi->lon, tmp2);
p_latlon=g_strdup_printf("%s, %s", tmp1, tmp2);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), table = gtk_table_new(6, 4, FALSE), TRUE, TRUE, 0);
rlat=sqlite3_column_double(sql, 0);
rlon=sqlite3_column_double(sql, 1);
- lat_format(rlat, tmp1);
- lon_format(rlon, tmp2);
+ lat_format(_degformat, rlat, tmp1);
+ lon_format(_degformat, rlon, tmp2);
dist=calculate_distance(lat, lon, rlat, rlon) * UNITS_CONVERT[_units];
gtk_list_store_append(*store, &iter);
lat=sqlite3_column_double(poisql.select_poi, 0);
lon=sqlite3_column_double(poisql.select_poi, 1);
- lat_format(lat, tmp1);
- lon_format(lon, tmp2);
+ lat_format(_degformat, lat, tmp1);
+ lon_format(_degformat, lon, tmp2);
gtk_list_store_append(*store, &iter);
gtk_list_store_set(*store, &iter,
#include "gps.h"
#include "map.h"
#include "mapper-types.h"
+#include "latlon.h"
#include "bt.h"
#include "ui-common.h"
#include "settings.h"
gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
unit2latlon(_pos.unitx, _pos.unity, lat, lon);
-lat_format(lat, tmp1);
-lon_format(lon, tmp2);
+lat_format(_degformat, lat, tmp1);
+lon_format(_degformat, lon, tmp2);
p_latlon = g_strdup_printf("%s, %s", tmp1, tmp2);
gtk_table_attach(GTK_TABLE(table), label = gtk_label_new(p_latlon), 1, 2, 0, 1, GTK_FILL, 0, 2, 4);
gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
}
void
-mapper_init_variables(void)
+variables_init(void)
{
UNITS_TEXT[UNITS_KM] = _("km");
UNITS_TEXT[UNITS_MI] = _("mi.");
COLORABLE_GCONF[COLORABLE_ROUTE_WAY] = GCONF_KEY_PREFIX "/color_route_way";
COLORABLE_GCONF[COLORABLE_ROUTE_BREAK] = GCONF_KEY_PREFIX "/color_route_break";
COLORABLE_GCONF[COLORABLE_POI] = GCONF_KEY_PREFIX "/color_poi";
-
-DEG_FORMAT_TEXT[DDPDDDDD] = "-dd.ddddd°";
-DEG_FORMAT_TEXT[DD_MMPMMM] = "-dd°mm.mmm'";
-DEG_FORMAT_TEXT[DD_MM_SSPS] = "-dd°mm'ss.s\"";
-DEG_FORMAT_TEXT[DDPDDDDD_NSEW] = "dd.ddddd° S";
-DEG_FORMAT_TEXT[DD_MMPMMM_NSEW] = "dd°mm.mmm' S";
-DEG_FORMAT_TEXT[DD_MM_SSPS_NSEW] = "dd°mm'ss.s\" S";
-
-SPEED_LOCATION_TEXT[SPEED_LOCATION_TOP_LEFT] = _("Top-Left");
-SPEED_LOCATION_TEXT[SPEED_LOCATION_TOP_RIGHT] = _("Top-Right");
-SPEED_LOCATION_TEXT[SPEED_LOCATION_BOTTOM_RIGHT] = _("Bottom-Right");
-SPEED_LOCATION_TEXT[SPEED_LOCATION_BOTTOM_LEFT] = _("Bottom-Left");
}
/**
#endif
}
-void
-deg_format(DegFormat degformat, gdouble coor, gchar * scoor, gchar neg_char, gchar pos_char)
-{
-gdouble min;
-gdouble acoor=fabs(coor);
-
-switch (degformat) {
- case DDPDDDDD:
- sprintf(scoor, "%.5f°", coor);
- break;
- case DDPDDDDD_NSEW:
- sprintf(scoor, "%.5f° %c", acoor,
- coor < 0.f ? neg_char : pos_char);
- break;
-
- case DD_MMPMMM:
- sprintf(scoor, "%d°%06.3f'",
- (int)coor, (acoor - (int)acoor) * 60.0);
- break;
- case DD_MMPMMM_NSEW:
- sprintf(scoor, "%d°%06.3f' %c",
- (int)acoor, (acoor - (int)acoor) * 60.0,
- coor < 0.f ? neg_char : pos_char);
- break;
-
- case DD_MM_SSPS:
- min = (acoor - (int)acoor) * 60.0;
- sprintf(scoor, "%d°%02d'%04.1f\"", (int)coor, (int)min,
- ((min - (int)min) * 60.0));
- break;
- case DD_MM_SSPS_NSEW:
- min = (acoor - (int)acoor) * 60.0;
- sprintf(scoor, "%d°%02d'%04.1f\" %c", (int)acoor, (int)min,
- ((min - (int)min) * 60.0),
- coor < 0.f ? neg_char : pos_char);
- break;
- default:;
-}
-}
/**
* Convert the float lat/lon/speed/heading data into integer units.
#define KEEP_DISPLAY_ON()
#endif
-#define lat_format(A, B) deg_format(_degformat,(A), (B), 'S', 'N')
-#define lon_format(A, B) deg_format(_degformat,(A), (B), 'W', 'E')
-
#define TRACKS_MASK 0x00000001
#define ROUTES_MASK 0x00000002
void sound_noise(void);
gint download_comparefunc(const ProgressUpdateInfo * a, const ProgressUpdateInfo * b, gpointer user_data);
-void deg_format(DegFormat degformat, gdouble coor, gchar *scoor, gchar neg_char, gchar pos_char);
void integerize_data(GpsData *gps, Point *pos);
#endif