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