]> err.no Git - mapper/blobdiff - src/poi.c
More map widget integration changes
[mapper] / src / poi.c
index cd6845ecb6308218f29282266f3e286ce89b6fa4..7613ef04742e605a39c3d59c37e9c59ada97ab3d 100644 (file)
--- a/src/poi.c
+++ b/src/poi.c
@@ -242,8 +242,7 @@ gboolean
 poi_db_prepare(sqlite3 *db)
 {
 /* Select POIs inside given minmax lat,lon */
-DB_PREP(db,
-               "select " 
+DB_PREP(db,    "select " 
                POI_BASE_SQL_FIELDS
                " from poi p, category c "
                " where p.lat between ? and ? "
@@ -252,8 +251,7 @@ DB_PREP(db,
                poisql.select_poi);
 
 /* Get POI with given ID */
-DB_PREP(db,
-               "select "
+DB_PREP(db,    "select "
                POI_BASE_SQL_FIELDS
                " from poi p, category c "
                " where p.poi_id = ? "
@@ -261,8 +259,7 @@ DB_PREP(db,
                poisql.select_poi_by_id);
 
 /* Search POIs by label and any category */
-DB_PREP(db,
-               "select "
+DB_PREP(db,    "select "
                POI_BASE_SQL_FIELDS
                " from poi p, category c "
                " where p.lat between ? and ? "
@@ -271,8 +268,7 @@ DB_PREP(db,
                poisql.select_poi_search);
 
 /* Search POI by label and category */
-DB_PREP(db,
-               "select "
+DB_PREP(db,    "select "
                POI_BASE_SQL_FIELDS
                " from poi p, category c "
                " where p.lat between ? and ? "
@@ -281,8 +277,7 @@ DB_PREP(db,
                poisql.select_poi_search_cat);
 
 /* Search POIs by category */
-DB_PREP(db,
-               "select "
+DB_PREP(db,    "select "
                POI_BASE_SQL_FIELDS
                " from poi p, category c "
                " where p.lat between ? and ? "
@@ -291,8 +286,7 @@ DB_PREP(db,
                poisql.select_poi_by_cat);
 
 /* Select any nearest POI */
-DB_PREP(db,
-               "select "
+DB_PREP(db,    "select "
                POI_MINI_SQL_FIELDS
                " from poi p, category c "
                " where c.enabled = 1 and p.cat_id = c.cat_id "
@@ -313,31 +307,17 @@ DB_PREP(db, "delete from poi where poi_id=?", poisql.delete_poi);
 DB_PREP(db, "delete from poi where cat_id=?", poisql.delete_poi_by_catid);
 
 /* select from category */
-DB_PREP(db,
-               "select c.label, c.desc, c.enabled"
-               " from category c where c.cat_id = ?",
-               poisql.select_cat);
+DB_PREP(db,    "select c.label, c.desc, c.enabled from category c where c.cat_id = ?", poisql.select_cat);
 /* insert into category */
-DB_PREP(db,
-               "insert into category (label, desc, enabled)"
-               " values (?, ?, ?)", 
-               poisql.insert_cat);
+DB_PREP(db,    "insert into category (label, desc, enabled) values (?, ?, ?)", poisql.insert_cat);
 /* update category */
-DB_PREP(db,
-               "update category set label = ?, desc = ?,"
-               " enabled = ? where poi_id = ?",
-               poisql.update_cat);
+DB_PREP(db,    "update category set label = ?, desc = ?, enabled = ? where cat_id = ?", poisql.update_cat);
 /* delete from category */
-DB_PREP(db,"delete from category where cat_id = ?",
-               poisql.delete_cat);
+DB_PREP(db,"delete from category where cat_id = ?",    poisql.delete_cat);
 /* enable category */
-DB_PREP(db,
-               "update category set enabled = ?"
-               " where cat_id = ?", 
-               poisql.toggle_cat);
+DB_PREP(db,    "update category set enabled = ? where cat_id = ?", poisql.toggle_cat);
 /* select all category */
-DB_PREP(db,
-               "select c.cat_id, c.label, c.desc, c.enabled, c.icon, c.color,"
+DB_PREP(db,    "select c.cat_id, c.label, c.desc, c.enabled, c.icon, c.color,"
                " count(p.poi_id)"
                " from category c"
                " left outer join poi p on c.cat_id = p.cat_id"
@@ -345,8 +325,7 @@ DB_PREP(db,
                " order by c.priority,c.label", 
                poisql.selall_cat);
 /* Select quick categories */
-DB_PREP(db,
-               "select c.cat_id, c.label, c.icon, c.color"
+DB_PREP(db,    "select c.cat_id, c.label, c.icon, c.color"
                " from category c where c.enabled=1 "
                " order by c.priority,c.label limit 9", 
                poisql.select_quick_cat);
@@ -432,7 +411,7 @@ if (p->cat_desc)
 g_slice_free(poi_info, p);
 }
 
-static GtkListStore *
+GtkListStore *
 poi_list_store_new(void) {
 return gtk_list_store_new(ITEM_NUM_COLUMNS, 
                        G_TYPE_INT,     /* POI ID */
@@ -585,7 +564,7 @@ return TRUE;
 }
 
 gboolean
-poi_search(poi_search_type pst, gdouble lat, gdouble lon, gchar *text, guint cat, GtkListStore **store)
+poi_search(poi_search_type pst, gdouble lat, gdouble lon, gchar *text, guint cat, GtkListStore *store)
 {
 GtkTreeIter iter;
 sqlite3_stmt *sql=NULL;
@@ -598,6 +577,7 @@ if (!poidb)
        return FALSE;
 
 g_return_val_if_fail(poisql.select_poi, FALSE);
+g_return_val_if_fail(store, FALSE);
 
 g_printf("POI Search: [%s] around %.6f %.6f (%d %d)\n", text, lat, lon, cat, pst);
 
@@ -660,8 +640,6 @@ if (SQLITE_OK != sqlite3_bind_double(sql, 1, lat-range) ||
        return FALSE;
 }
 
-*store = poi_list_store_new();
-
 while (SQLITE_ROW == sqlite3_step(sql)) {
        gdouble rlat, rlon, dist;
 
@@ -671,8 +649,8 @@ while (SQLITE_ROW == sqlite3_step(sql)) {
        lon_format(_degformat, rlon, tmp2);
        dist=calculate_distance(lat, lon, rlat, rlon) * UNITS_CONVERT[_units];
 
-       gtk_list_store_append(*store, &iter);
-       gtk_list_store_set(*store, &iter,
+       gtk_list_store_append(store, &iter);
+       gtk_list_store_set(store, &iter,
                ITEM_ID, sqlite3_column_int(sql, 2),
                ITEM_CATID, sqlite3_column_int(sql, 5),
                ITEM_LAT, rlat, 
@@ -695,7 +673,7 @@ return TRUE;
 }
 
 gboolean
-poi_get_list_inside(gdouble lat1, gdouble lon1, gdouble lat2, gdouble lon2, GtkListStore **store, guint *num_poi)
+poi_get_list_inside(gdouble lat1, gdouble lon1, gdouble lat2, gdouble lon2, GtkListStore *store, guint *num_poi)
 {
 static gboolean active=FALSE;
 GtkTreeIter iter;
@@ -707,21 +685,20 @@ if (!_db)
        return FALSE;
 
 g_return_val_if_fail(poisql.select_poi, FALSE);
+g_return_val_if_fail(store, FALSE);
 
 if (active)
        return FALSE;
 
 active=TRUE;
 if (SQLITE_OK != sqlite3_bind_double(poisql.select_poi, 1, lat1) ||
-    SQLITE_OK != sqlite3_bind_double(poisql.select_poi, 2, lat2) ||
-    SQLITE_OK != sqlite3_bind_double(poisql.select_poi, 3, lon1) ||
-    SQLITE_OK != sqlite3_bind_double(poisql.select_poi, 4, lon2)) {
+       SQLITE_OK != sqlite3_bind_double(poisql.select_poi, 2, lat2) ||
+       SQLITE_OK != sqlite3_bind_double(poisql.select_poi, 3, lon1) ||
+       SQLITE_OK != sqlite3_bind_double(poisql.select_poi, 4, lon2)) {
        g_printerr("Failed to bind values for poisql.select_poi\n");
        return FALSE;
 }
 
-*store = poi_list_store_new();
-
 while (SQLITE_ROW == sqlite3_step(poisql.select_poi)) {
        gdouble lat, lon, dist=0;
 
@@ -730,8 +707,8 @@ while (SQLITE_ROW == sqlite3_step(poisql.select_poi)) {
        lat_format(_degformat, lat, tmp1);
        lon_format(_degformat, lon, tmp2);
 
-       gtk_list_store_append(*store, &iter);
-       gtk_list_store_set(*store, &iter,
+       gtk_list_store_append(store, &iter);
+       gtk_list_store_set(store, &iter,
                ITEM_ID, sqlite3_column_int(poisql.select_poi, 2),
                ITEM_CATID, sqlite3_column_int(poisql.select_poi, 5),
                ITEM_LAT, lat,
@@ -753,18 +730,14 @@ return TRUE;
 }
 
 gboolean
-poi_get_list_near_unit(guint unitx, guint unity, guint range, GtkListStore **store, guint *num_poi)
+poi_get_list_near(gdouble lat, gdouble lon, gfloat range, GtkListStore *store, guint *num_poi)
 {
 gdouble lat1, lon1, lat2, lon2;
-guint x, y;
-
-x=unitx-pixel2unit(3*range);
-y=unity+pixel2unit(3*range);
-unit2latlon(x, y, lat1, lon1);
 
-x=unitx+pixel2unit(3*range);
-y=unity-pixel2unit(3*range);
-unit2latlon(x, y, lat2, lon2); 
+lat1=lat-range;
+lon1=lon-range;
+lat2=lat+range;
+lon2=lon+range;
 
 return poi_get_list_inside(lat1, lon1, lat2, lon2, store, num_poi);
 }