]> err.no Git - mapper/blob - src/poi.h
The database is not specific to POIs only so rename/move variables.
[mapper] / src / poi.h
1 /*
2
3 POI table definitions:
4
5 -- public POIs from different sources
6 -- (Fuel, pubs, museums, etc)
7 --
8 create table poi (
9         poi_id integer PRIMARY KEY, 
10         cat_id integer,
11         source int,
12         source_id int,
13         type int,
14         lat real,
15         lon real,
16         elev real,
17         label text,
18         desc text,
19         wikipedia text,
20         url text,
21         phone varchar(64),
22         email varchar(64),
23 );
24
25 -- type:
26 -- 0=POI
27 -- 1=Landmark
28
29 -- Shared categories for POIs and landmarks
30 create table category (
31         cat_id integer PRIMARY KEY,
32         pcat_id int,
33         priority int,
34         label text,
35         desc text,
36         color char(6),
37         icon varchar(32),
38         enabled integer
39 );
40
41 Categories:
42 Fuel
43         - Esso, Teboil, BP, Nest, etc
44 Parking
45 Residence
46 Dining
47         - Restaurant
48 Fast food
49 Shopping/Services
50 Recreation
51 Transportation
52         - Bus
53         - Train
54         - Boat/Ferry
55         - Plane
56 Lodging
57         - Hotell
58         - Motell
59 School
60 Business
61 Landmark
62 Other
63
64 */
65
66 #ifndef _MAPPER_POI_H
67 #define _MAPPER_POI_H
68
69 #include <sqlite3.h>
70
71 typedef enum {
72         POI_TYPE_POINT=0,
73         POI_TYPE_LANDMARK=1,
74 } poi_types_e;
75
76 typedef struct _PoiDb PoiDb;
77 struct _PoiDb {
78         sqlite3 *db;
79         gchar *file;
80         guint zoom;
81 };
82
83 typedef struct _PoiData PoiData;
84 struct _PoiData {
85         gfloat lat;
86         gfloat lon;
87         gchar *name;
88         gchar *desc;
89 };
90
91 /** Data to describe a POI. */
92 typedef struct _PoiInfo PoiInfo;
93 struct _PoiInfo {
94         guint poi_id;
95         guint cat_id;
96         gfloat lat;
97         gfloat lon;
98         gchar *label;
99         gchar *desc;
100 };
101
102 /** Data used during action: add or edit category/poi **/
103 typedef struct _DeletePOI DeletePOI;
104 struct _DeletePOI {
105         GtkWidget *dialog;
106         gchar *txt_label;
107         guint id;
108 };
109
110 guint _poi_zoom;
111
112 /* POI SQL statements */
113 sqlite3_stmt *_stmt_select_poi;
114 sqlite3_stmt *_stmt_select_nearest_poi;
115 sqlite3_stmt *_stmt_insert_poi;
116 sqlite3_stmt *_stmt_update_poi;
117 sqlite3_stmt *_stmt_delete_poi;
118 sqlite3_stmt *_stmt_delete_poi_by_catid;
119 sqlite3_stmt *_stmt_nextlabel_poi;
120
121 /* Category SQL statements */
122 sqlite3_stmt *_stmt_select_cat;
123 sqlite3_stmt *_stmt_insert_cat;
124 sqlite3_stmt *_stmt_update_cat;
125 sqlite3_stmt *_stmt_delete_cat;
126 sqlite3_stmt *_stmt_toggle_cat;
127 sqlite3_stmt *_stmt_selall_cat;
128
129 #endif