navit 0.5.3-trunk
Loading...
Searching...
No Matches
gpx2navit_txt.h
Go to the documentation of this file.
1
20#ifndef GPX2SHP_H_INCLUDED
21#define GPX2SHP_H_INCLUDED
22
23#define PROG gpx2navit_txt
24#define FILENAMELENGTH 255 /* 255 is max length for dbf string column */
25#define COMMENTLENGTH 255 /* 255 is max length for dbf string column */
26#define NAMELENGTH 32
27#define TIMELENGTH 32
28#define TYPELENGTH 16
29#define BUFFSIZE 8192
30#define DATABUFSIZE 16
31#define failToWriteAttr(S, T) failToWriteAttrRep((S), (T), __FILE__, __LINE__)
32
33#include "errorcode.h"
34#include <assert.h>
35#include <ctype.h>
36#include <expat.h>
37#include <getopt.h>
38#include <libgen.h>
39#include <stdio.h>
40#include <stdlib.h>
41#include <string.h>
42#include <time.h>
43#include <unistd.h>
44// #include "shapefil.h"
45
46#define DEBUG 0
50typedef struct parent {
51 char *name;
55
59typedef struct g2scolumns {
63 int name;
64 int cmt;
65 int desc;
66 int src;
67 int link;
68 int type;
69 int time;
70 int number;
71 int ele;
72 int magvar;
74 int sym;
75 int fix;
76 int sat;
77 int hdop;
78 int vdop;
79 int pdop;
81 int dgpsid;
82 int length;
84 int speed;
85 int points;
88
92typedef struct pathattr {
98 int number;
100 double length;
101 double interval;
102 double speed;
103 /*
104 double *x;
105 double *y;
106 double *z;
107 */
108 double *point;
109 int count;
111
150
165
169// typedef struct dbfhandles {
170// DBFHandle trk; /** for track */
171// DBFHandle wpt; /** for waypoint */
172// DBFHandle rte; /** for route */
173// DBFHandle trk_edg; /** for track each edge */
174// DBFHandle trk_pnt; /** for track each point */
175// DBFHandle rte_edg; /** for route each edge */
176// DBFHandle rte_pnt; /** for route each point */
177// } dbfhandles;
178
182// typedef struct shphandles {
183// SHPHandle trk; /** for track */
184// SHPHandle wpt; /** for waypoint */
185// SHPHandle rte; /** for route */
186// SHPHandle trk_edg; /** for track each edge */
187// SHPHandle trk_pnt; /** for track each point */
188// SHPHandle rte_edg; /** for route each edge */
189// SHPHandle rte_pnt; /** for route each point */
190// } shphandles;
191
224
228typedef struct parsedata {
229 int depth;
230 char *databuf;
231 char *bufptr;
232 int failed;
234 XML_Parser parser;
237 FILE *fp;
238 // shphandles *shps; /** .shp file cluster that is used in this program */
239 // dbfhandles *dbfs; /** .dbf file cluster that is used in this program */
244
245/* utils.c */
246void checkEllpsUnit(char *unit);
247double checkLengthUnit(char *unit);
248int checkTimeUnit(char *unit);
249double getTimeInterval(char *_t, char *t);
250double getSpeed(double length, double ti, double to_meter, int to_sec);
251double getDistance(double _x, double _y, double x, double y);
252// void closeShpFiles(shphandles * shps);
253// void closeDbfFiles(dbfhandles * dbfs);
254void *myMallocRep(size_t size, const char *fileName, int line);
255
256/* misc.c */
257void failToWriteAttrRep(int iShape, int col, char *file, int line);
258void showStats(g2sprop *prop);
259void wipePathAttr(pathattr *pattr);
261void wipeAttr(g2sattr *attr);
262void setColsDefault(g2scolumns *cols);
264g2sattr *createAttr(void);
265g2sprop *createProp(void);
266void closeProp(g2sprop *prop);
267// shphandles *createShps(void);
268// dbfhandles *createDbfs(void);
269parsedata *createParsedata(XML_Parser parser, g2sprop *prop);
270void closeParsedata(parsedata *pdata);
271
272/* parser.c */
273void parseMain(g2sprop *pr);
274
275/* elementControl.c */
276void startElementControl(parsedata *pdata, const char *element, const char **attr);
277void endElementControl(parsedata *pdata, const char *element);
278
279/* setwpt.c */
280void setWpt(parsedata *pdata);
281
282/* setpath.c */
283void initPathAttr(pathattr *pattr, g2sattr *attr);
284void setPathInterval(parsedata *pdata);
285void setPathData(pathattr *parrt, g2sattr *attr);
286void setPath(parsedata *pdata);
287
288/* setmetadata.c */
289void setMetadata(parsedata *pdata);
290
291#endif
int length
Definition garmin_img.c:1
int size
Definition garmin_img.c:3
GEOD_EXTERN double to_meter
Definition geodesic.h:60
void setWpt(parsedata *pdata)
Definition setwpt.c:27
void closeProp(g2sprop *prop)
Definition misc.c:260
double checkLengthUnit(char *unit)
Definition utils.c:59
g2sprop * createProp(void)
Definition misc.c:218
int checkTimeUnit(char *unit)
Definition utils.c:87
void setPathInterval(parsedata *pdata)
Definition setpath.c:95
void failToWriteAttrRep(int iShape, int col, char *file, int line)
Definition misc.c:40
void setPath(parsedata *pdata)
Definition setpath.c:218
void wipeAttr(g2sattr *attr)
Definition misc.c:128
g2scolumns * createCols(void)
Definition misc.c:198
double getDistance(double _x, double _y, double x, double y)
Definition utils.c:156
g2sattr * createAttr(void)
Definition misc.c:208
double getTimeInterval(char *_t, char *t)
Definition utils.c:105
#define TIMELENGTH
Definition gpx2navit_txt.h:27
void checkEllpsUnit(char *unit)
Definition utils.c:35
#define NAMELENGTH
Definition gpx2navit_txt.h:26
void endElementControl(parsedata *pdata, const char *element)
Definition elementControl.c:96
#define COMMENTLENGTH
Definition gpx2navit_txt.h:25
parsedata * createParsedata(XML_Parser parser, g2sprop *prop)
Definition misc.c:310
void * myMallocRep(size_t size, const char *fileName, int line)
void showStats(g2sprop *prop)
Definition misc.c:48
void setMetadata(parsedata *pdata)
Definition setmeta.c:25
void setColsDefault(g2scolumns *cols)
Definition misc.c:168
#define FILENAMELENGTH
Definition gpx2navit_txt.h:24
void closeParsedata(parsedata *pdata)
Definition misc.c:342
void wipePathAttr(pathattr *pattr)
Definition misc.c:100
pathattr * createPathAttr(void)
Definition misc.c:118
void parseMain(g2sprop *pr)
Definition parser.c:110
double getSpeed(double length, double ti, double to_meter, int to_sec)
Definition utils.c:131
void startElementControl(parsedata *pdata, const char *element, const char **attr)
Definition elementControl.c:30
#define TYPELENGTH
Definition gpx2navit_txt.h:28
void initPathAttr(pathattr *pattr, g2sattr *attr)
Definition setpath.c:37
void setPathData(pathattr *parrt, g2sattr *attr)
Definition setpath.c:129
Definition attr.h:138
Definition layout.h:38
Definition file.h:38
Definition gpx2navit_txt.h:115
char src[COMMENTLENGTH]
Definition gpx2navit_txt.h:128
char type[TYPELENGTH]
Definition gpx2navit_txt.h:130
char sym[NAMELENGTH]
Definition gpx2navit_txt.h:136
int dgpsid
Definition gpx2navit_txt.h:143
double vdop
Definition gpx2navit_txt.h:140
double ageofdgpsdata
Definition gpx2navit_txt.h:142
double maxlat
Definition gpx2navit_txt.h:124
char link[FILENAMELENGTH]
Definition gpx2navit_txt.h:129
double ele
Definition gpx2navit_txt.h:133
char author[NAMELENGTH]
Definition gpx2navit_txt.h:144
char fix[NAMELENGTH]
Definition gpx2navit_txt.h:137
int number
Definition gpx2navit_txt.h:132
double minlon
Definition gpx2navit_txt.h:121
double maxlon
Definition gpx2navit_txt.h:123
char cmt[COMMENTLENGTH]
Definition gpx2navit_txt.h:126
char time[TIMELENGTH]
Definition gpx2navit_txt.h:131
double pdop
Definition gpx2navit_txt.h:141
char desc[COMMENTLENGTH]
Definition gpx2navit_txt.h:127
double hdop
Definition gpx2navit_txt.h:139
char keywords[NAMELENGTH]
Definition gpx2navit_txt.h:145
char name[NAMELENGTH]
Definition gpx2navit_txt.h:125
char copyright[NAMELENGTH]
Definition gpx2navit_txt.h:146
int year
Definition gpx2navit_txt.h:147
int sat
Definition gpx2navit_txt.h:138
double geoidheight
Definition gpx2navit_txt.h:135
char license[NAMELENGTH]
Definition gpx2navit_txt.h:148
double magvar
Definition gpx2navit_txt.h:134
double minlat
Definition gpx2navit_txt.h:122
double lat
Definition gpx2navit_txt.h:120
double lon
Definition gpx2navit_txt.h:119
Definition gpx2navit_txt.h:59
int geoidheight
Definition gpx2navit_txt.h:73
int desc
Definition gpx2navit_txt.h:65
int hdop
Definition gpx2navit_txt.h:77
int magvar
Definition gpx2navit_txt.h:72
int ageofdgpsdata
Definition gpx2navit_txt.h:80
int ele
Definition gpx2navit_txt.h:71
int sat
Definition gpx2navit_txt.h:76
int fix
Definition gpx2navit_txt.h:75
int dgpsid
Definition gpx2navit_txt.h:81
int interval
Definition gpx2navit_txt.h:83
int vdop
Definition gpx2navit_txt.h:78
int gpxline
Definition gpx2navit_txt.h:86
int pdop
Definition gpx2navit_txt.h:79
int length
Definition gpx2navit_txt.h:82
int points
Definition gpx2navit_txt.h:85
int type
Definition gpx2navit_txt.h:68
int number
Definition gpx2navit_txt.h:70
int name
Definition gpx2navit_txt.h:63
int cmt
Definition gpx2navit_txt.h:64
int link
Definition gpx2navit_txt.h:67
int src
Definition gpx2navit_txt.h:66
int speed
Definition gpx2navit_txt.h:84
int sym
Definition gpx2navit_txt.h:74
int time
Definition gpx2navit_txt.h:69
Definition gpx2navit_txt.h:195
int isFast
Definition gpx2navit_txt.h:202
int nospeedcheck
Definition gpx2navit_txt.h:222
int minpoints
Definition gpx2navit_txt.h:204
g2sstats * stats
Definition gpx2navit_txt.h:220
char * timeUnit
Definition gpx2navit_txt.h:213
char * ellipsoid
Definition gpx2navit_txt.h:210
int isEdge
Definition gpx2navit_txt.h:200
char * lengthUnit
Definition gpx2navit_txt.h:211
int minlength
Definition gpx2navit_txt.h:205
int needsStats
Definition gpx2navit_txt.h:203
int speed2sec
Definition gpx2navit_txt.h:219
char * speedTimeUnit
Definition gpx2navit_txt.h:218
int mintime
Definition gpx2navit_txt.h:206
int parseRte
Definition gpx2navit_txt.h:198
double length2meter
Definition gpx2navit_txt.h:212
g2scolumns * cols
Definition gpx2navit_txt.h:221
char * speedLengthUnit
Definition gpx2navit_txt.h:215
int is3d
Definition gpx2navit_txt.h:199
double time2sec
Definition gpx2navit_txt.h:214
int parseWpt
Definition gpx2navit_txt.h:196
int verbose
Definition gpx2navit_txt.h:207
char * output
Definition gpx2navit_txt.h:209
char * sourcefile
Definition gpx2navit_txt.h:208
int isPoint
Definition gpx2navit_txt.h:201
int parseTrk
Definition gpx2navit_txt.h:197
double speed2meter
Definition gpx2navit_txt.h:217
Definition gpx2navit_txt.h:154
int rteunconverted
Definition gpx2navit_txt.h:163
int rtepoints
Definition gpx2navit_txt.h:158
int trkunconverted
Definition gpx2navit_txt.h:162
double rtelength
Definition gpx2navit_txt.h:160
int trkcount
Definition gpx2navit_txt.h:156
int rtecount
Definition gpx2navit_txt.h:159
double trklength
Definition gpx2navit_txt.h:157
int trkpoints
Definition gpx2navit_txt.h:155
int wptpoints
Definition gpx2navit_txt.h:161
Definition gpx2navit_txt.h:50
char * name
Definition gpx2navit_txt.h:51
struct parent * parentptr
Definition gpx2navit_txt.h:52
Definition gpx2navit_txt.h:228
char * bufptr
Definition gpx2navit_txt.h:231
int failedid
Definition gpx2navit_txt.h:233
parent * parent
Definition gpx2navit_txt.h:235
g2sprop * prop
Definition gpx2navit_txt.h:242
XML_Parser parser
Definition gpx2navit_txt.h:234
int failed
Definition gpx2navit_txt.h:232
pathattr * pattr
Definition gpx2navit_txt.h:241
int depth
Definition gpx2navit_txt.h:229
g2sattr * attr
Definition gpx2navit_txt.h:240
char * databuf
Definition gpx2navit_txt.h:230
FILE * fp
Definition gpx2navit_txt.h:237
parent * current
Definition gpx2navit_txt.h:236
Definition gpx2navit_txt.h:92
double interval
Definition gpx2navit_txt.h:101
char type[TYPELENGTH]
Definition gpx2navit_txt.h:99
char link[FILENAMELENGTH]
Definition gpx2navit_txt.h:97
char cmt[COMMENTLENGTH]
Definition gpx2navit_txt.h:94
char src[COMMENTLENGTH]
Definition gpx2navit_txt.h:96
int number
Definition gpx2navit_txt.h:98
char name[NAMELENGTH]
Definition gpx2navit_txt.h:93
double * point
Definition gpx2navit_txt.h:108
double speed
Definition gpx2navit_txt.h:102
char desc[COMMENTLENGTH]
Definition gpx2navit_txt.h:95
int count
Definition gpx2navit_txt.h:109
double length
Definition gpx2navit_txt.h:100