1<appendix id="Styles">
2   <title>GPSBabel XCSV Style Files</title>
3   <section id="styles_intro">
4      <title>Introduction to GPSBabel Styles</title>
5      <para>Often it is desirable to add a new file format for &quot;one-off&quot; work (perhaps
6you want to export something to a spreadsheet or graphing program) or to read
7a format that GPSBabel does not yet support.   For suitably simple formats,
8this can be done by a user with no programming experience by providing a
9GPSBabel style file.
10</para>
11      <para>For a format to be described by a style file, it must be predictable and
12generally readable by humant.  Formats with binary or unreadable content
13are not good fits for this scheme.  It should have:
14        <simplelist>
15            <member>A fixed header at the beginning, if it has any at all. This is called a 'prologue'.</member>
16            <member>Waypoints that are grouped by fixed separators, often a newline.  In style file parlance, this is called a 'record'.</member>
17            <member>Traits of that waypoint described in that record.  In the style files, these are called 'fields' and examples may include longitude or a name.</member>
18            <member>Fields that are grouped by fixed separators, often a comma or a tab.  In the style files, this is called the field separator. Fields may be enclosed by characters, such as a double quote.</member>
19            <member>A fixed footer at the end, if it has any at all.  This is called the 'epilogue'.</member></simplelist>
20      </para>
21      <para>Once you have created a style file that describes the file format you have
22or want, you must tell GPSBabel to use the xcsv format and have the xcsv
23format use that file.  If you created a new style file called
24&quot;mystyle.style&quot; and you want to write the  waypoints from
25a GPX file named &quot;mine.gpx&quot; to it, you would issue a command like:
26</para>
27      <para>
28         <userinput>gpsbabel -i gpx -f mine.gpx -o xcsv,style=mystyle.style -F mine.new</userinput>
29      </para>
30      <para>You might then examine
31         <filename>mine.new</filename>
32         to see if it met
33your expectations.  If not, you could continue to tweak
34
35         <filename>mystyle.style</filename>
36         until it did, rerunning the above
37command each time.  If 'mystyle' is a format
38that describes a popular program or is likely to be of use to others, you can
39then share
40
41
42
43
44
45
46         <filename>mystyle.style</filename>
47         with other GPSBabel users.
48Send it along with a coherent description to the GPSBabel-Misc mailing
49list for consideration to be included in a future version.</para>
50   </section>
51   <section id="style_intro2">
52      <title>Style file overview</title>
53      <para>The first and foremost important step is understanding how the style
54file is laid out itself.  The format is:
55</para>
56      <screen format="linespecific">DIRECTIVE&lt;whitespace&gt;VALUE</screen>
57      <para>Where &lt;whitespace&gt; is one or more spaces or tabs.  There should
58be no spaces or tabs at the beginning of the line; all directives start
59at the left edge in column zero.
60</para>
61      <para>An example style format is shown here:
62
63
64
65
66
67
68
69         <literallayout># Format: MS S&amp;T 2002/2003
70# Author: Alex Mottram
71#   Date: 12/09/2002
72#
73
74DESCRIPTION       Microsoft Streets and Trips 2002-2006
75EXTENSION               txt
76
77#
78# FILE LAYOUT DEFINITIIONS:
79#
80FIELD_DELIMITER      TAB
81RECORD_DELIMITER  NEWLINE
82BADCHARS    ,&quot;
83
84PROLOGUE Name  Latitude Longitude   Description URL   Type  Container   Diff  Terr
85
86#
87# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:
88# NOTE: MS S&amp;T ONLY IMPORTS DATA, IT DOESN'T
89#       EXPORT THIS ANYWHERE SO WE CAN HAVE OUR
90#       WAY WITH THE FORMATTING.
91#
92IFIELD   SHORTNAME, &quot;&quot;, &quot;%s&quot;      # Name
93IFIELD   LAT_DECIMAL, &quot;&quot;, &quot;%f&quot;    # Latitude
94IFIELD   LON_DECIMAL, &quot;&quot;, &quot;%f&quot;    # Longitude
95IFIELD   DESCRIPTION, &quot;&quot;, &quot;%s&quot;    # Name 2 (Big Description)
96IFIELD   URL, &quot;&quot;, &quot;%s&quot;         # URL
97IFIELD   GEOCACHE_TYPE, &quot;&quot;, &quot;%s&quot;     # Geocache Type
98IFIELD   GEOCACHE_CONTAINER, &quot;&quot;, &quot;%s&quot;   # Geocache Type
99IFIELD   GEOCACHE_DIFF, &quot;&quot;, &quot;%3.1f&quot;  # Geocache Type
100IFIELD   GEOCACHE_TERR, &quot;&quot;, &quot;%3.1f&quot;  # Geocache Type
101</literallayout>
102         Each of these lines will be explained in the following sections.</para>
103   </section>
104   <!-- intro -->
105   <section id="styles_internal_const">
106      <title>Internal Constants</title>
107      <para>A few internal constants are defined in the XCSV parser to make the style
108file simpler.  They may or may not be used and are optional in most cases.
109Note that only certain style file directives map these constants.
110</para>
111      <para>
112         <segmentedlist>
113            <?dbhtml list-presentation="table"?>
114            <segtitle>Style Constant</segtitle>
115            <segtitle>Maps to Char(s)</segtitle>
116            <seglistitem>
117               <seg>COMMA</seg>
118               <seg>,</seg>
119            </seglistitem>
120            <seglistitem>
121               <seg>COMMASPACE</seg>
122               <seg>,&lt;space&gt;</seg>
123            </seglistitem>
124            <seglistitem>
125               <seg>SINGLEQUOTE</seg>
126               <seg>'</seg>
127            </seglistitem>
128            <seglistitem>
129               <seg>DOUBLEQUOTE</seg>
130               <seg>&quot;</seg>
131            </seglistitem>
132            <seglistitem>
133               <seg>COLON</seg>
134               <seg>:</seg>
135            </seglistitem>
136            <seglistitem>
137               <seg>SEMICOLON</seg>
138               <seg>;</seg>
139            </seglistitem>
140            <seglistitem>
141               <seg>NEWLINE</seg>
142               <seg>\n</seg>
143            </seglistitem>
144            <seglistitem>
145               <seg>CR</seg>
146               <seg>\r</seg>
147            </seglistitem>
148            <seglistitem>
149               <seg>CRNEWLINE</seg>
150               <seg>\r\n</seg>
151            </seglistitem>
152            <seglistitem>
153               <seg>TAB</seg>
154               <seg>\t</seg>
155            </seglistitem>
156            <seglistitem>
157               <seg>SPACE</seg>
158               <seg>&lt;space&gt;</seg>
159            </seglistitem>
160            <seglistitem>
161               <seg>HASH</seg>
162               <seg>#</seg>
163            </seglistitem>
164            <seglistitem>
165               <seg>PIPE</seg>
166               <seg>|</seg>
167            </seglistitem>
168            <seglistitem>
169               <seg>WHITESPACE</seg>
170               <seg>see below</seg>
171            </seglistitem>
172         </segmentedlist>
173      </para>
174      <section id="style_const_whitespace">
175         <title>WHITESPACE</title>
176         <para>The WHITESPACE constant has special properties.  When reading data,
177WHITESPACE refers to sequential runs of SPACES and/or TABS.  When
178writing data, WHITESPACE is always a single SPACE.
179</para>
180         <para>For example, the following line:
181</para>
182         <screen format="linespecific">SOME_NAME       30.1208 -91.1365    SOME OTHER NAME
183</screen>
184         <para>Parses into the following data fields:
185</para>
186         <screen format="linespecific">SOME_NAME,30.1208,-91.1365,SOME,OTHER,NAME
187</screen>
188      </section>
189      <section id="style_const_comments">
190         <title>COMMENTS</title>
191         <para>Anything after a hash (#) on a line is not parsed.  For example:
192</para>
193         <screen format="linespecific">#THIS ENTIRE LINE IS A COMMENT.
194#FIELD   LAT_DECIMAL, &quot;&quot;, &quot;%f&quot;   THIS ENTIRE LINE IS A COMMENT
195FIELD LAT_DECIMAL, &quot;&quot;, &quot;%f&quot;  # ONLY THIS SENTENCE IS A COMMENT.
196</screen>
197      </section>
198   </section>
199   <!-- internal constants -->
200   <section id="style_global">
201      <title>Global Properties of the File</title>
202      <para>There are a few available directives to describe general traits of the
203file being described and not specific data within the file itself.
204</para>
205      <section id="style_global_description">
206         <title>DESCRIPTION</title>
207         <para>This is the description of the file format being described. This text
208appears in the help screens and in menus used by the various GUI wrappers.
209</para>
210      </section>
211      <section id="style_global_extension">
212         <title>EXTENSION</title>
213         <para>This directive gives the filename extension generally associated with
214this file.
215</para>
216      </section>
217      <section id="style_global_encoding">
218         <title>ENCODING</title>
219         <para>Describes the character set used by this format.  The value given
220must be one listed by 'gpsbabel -l'.    example:
221</para>
222         <screen format="linespecific">ENCODING          UTF-8 # Use UTF-8 for input and output.
223</screen>
224      </section>
225      <section id="style_global_datum">
226         <title>DATUM</title>
227         <para>This value specifies the GPS datum to be used on read or write. Valid values for this
228option are listed in
229
230
231
232
233
234
235            <xref linkend="Datums"/>
236            .</para>
237         <screen format="linespecific">DATUM             European 1950
238</screen>
239      </section>
240      <section id="style_global_datatype">
241         <title>DATATYPE</title>
242         <para>Specifies the kind of data we have to read or write.
243</para>
244         <para>By default all data are seen as waypoint data. With DATATYPE you are now able to bind
245a specific type to this format. Possible values are WAYPOINT, ROUTE or TRACK.
246</para>
247         <screen format="linespecific">DATATYPE          ROUTE # route-only format
248</screen>
249      </section>
250   </section>
251   <!-- global -->
252   <section id="style_behavior">
253      <title>GPSBabel Behavior Directives</title>
254      <para>There are a few available directives to control some of the internal
255processing functions of GPSBabel.
256</para>
257      <section id="style_behave_shortlen">
258         <title>SHORTLEN</title>
259         <para>This sets the maximum allowed shortname length when using the internal
260   shortname synthesizer.
261</para>
262         <para>example:
263</para>
264         <screen format="linespecific">SHORTLEN 16 # shortnames will be at most 16 characters long.
265</screen>
266      </section>
267      <section id="style_behave_shortwhite">
268         <title>SHORTWHITE</title>
269         <para>This tells the shortname synthesizer whether or not to allow whitespace
270   in the synthesized shortnames.  Allowed values are zero and one.
271</para>
272         <para>example:
273</para>
274         <screen format="linespecific">SHORTWHITE  0  # Do not allow whitespace in shortname.
275   SHORTWHITE   1 # Allow whitespace in shortname.
276</screen>
277      </section>
278   </section>
279   <!-- behavior -->
280   <section id="style_layout">
281      <title>Defining the Layout of the File</title>
282      <para>The first few directives define the layout the physical file itself:
283</para>
284      <section id="style_layout_field">
285         <title>FIELD_DELIMITER</title>
286         <para>The field delimiter defines the character(s) that separate the fields in
287   the rows of data inside the XCSV file.  Common field delimiters are commas
288   and tabs. (referred to as &quot;comma separated values&quot; and &quot;tab separated
289   values&quot;)
290</para>
291         <para>examples:
292</para>
293         <screen format="linespecific">FIELD_DELIMITER    COMMA
294   FIELD_DELIMITER    ~
295</screen>
296         <para>The directive FIELD_DELIMITER is parsed for STYLE CONSTANTS as defined in
297   the table above.
298</para>
299      </section>
300      <section id="style_layout_field_enclose">
301         <title>FIELD_ENCLOSER</title>
302         <para>The field encloser defines the character(s) that surround the field values.
303   Common field enclosers are single and double quote marks. Many styles will
304   leave this directive unset. If set, it will be applied to all fields.
305</para>
306         <para>examples:
307</para>
308         <screen format="linespecific">FIELD_ENCLOSER    DOUBLEQUOTE
309   FIELD_ENCLOSER    SINGLEQUOTE
310</screen>
311         <para>The directive FIELD_ENCLOSER is parsed for STYLE CONSTANTS as defined in
312   the table above.
313</para>
314      </section>
315      <section id="style_layout_rec">
316         <title>RECORD_DELIMITER</title>
317         <para>The record delimiter defines that character(s) that separate ROWS of
318   data (FIELDS) in the XCSV file.  The most common record delimiters
319   are NEWLINE and CR (carriage return).
320</para>
321         <para>examples:
322</para>
323         <screen format="linespecific">RECORD_DELIMITER    NEWLINE
324   RECORD_DELIMITER    |
325</screen>
326         <para>The directive RECORD_DELIMITER is parsed for STYLE CONSTANTS as defined
327   in the table above.
328</para>
329      </section>
330      <section id="style_layout_badchars">
331         <title>BADCHARS</title>
332         <para>Bad characters are things that should *never* be written into the XCSV
333   file as data on output.  GPSBabel automatically includes any non-blank
334   FIELD_DELIMITER and FIELD_ENCLOSER and RECORD_DELIMITER characters as
335   BADCHARS by default.
336</para>
337         <para>examples:
338</para>
339         <screen format="linespecific">BADCHARS    COMMA
340  BADCHARS    ~|
341</screen>
342         <para>The directive BADCHARS is parsed for STYLE CONSTANTS as defined in the
343   table above.
344</para>
345      </section>
346      <section id="style_layout_prologue">
347         <title>PROLOGUE</title>
348         <para>A prologue is basically constant data that is written to the output
349   file BEFORE any waypoints are processed.  PROLOGUE can be defined
350   multiple times in the style file, once for each &quot;line&quot; before the data
351   begins.  This is commonly used in XCSV files as a &quot;header&quot; row.
352</para>
353         <para>examples:
354</para>
355         <screen format="linespecific">PROLOGUE OziExplorer Waypoint File Version 1.1
356  PROLOGUE  WGS 84
357  PROLOGUE  Symbol,Name,Latitude,Longitude
358</screen>
359      </section>
360      <section id="style_layout_epilogue">
361         <title>EPILOGUE</title>
362         <para>An Epilogue is the same as a prologue, except this data is written at
363   the END of the file.  See the examples for PROLOGUE above.
364</para>
365      </section>
366   </section>
367   <!-- layout -->
368   <section id="style_define">
369      <title>Defining Fields Within the File</title>
370      <para>A field defines data.  There are two different classifications of FIELDS,
371IFIELD (file input) and OFIELD (file output).  In the absence of any OFIELDS,
372IFIELDS are use as both input and output.  The existence of OFIELDS is
373primarily to allow more flexible mapping of GPSBabel data to output data
374(say, for instance, to map the internal GPSBabel &quot;description&quot; variable to
375two or more fields on output).  For all practical purposes, IFIELDS and
376OFIELDS are defined the same way in the style file.</para>
377      <para>The following per-field options are defined:
378</para>
379      <itemizedlist>
380         <listitem>
381            <para>&quot;no_delim_before&quot; is supported on in OFIELD tags to specify that this
382   field should be written without a field delimiter before it.  It's
383   useful for limited field concatenation.
384</para>
385         </listitem>
386         <listitem>
387            <para>&quot;absolute&quot; is supported on OFIELD tags for lat and lon to indicate
388   that only absolute values (never negative) are to be printed.
389</para>
390         </listitem>
391         <listitem>
392            <para>&quot;optional&quot; is supported only OFIELD tags and indicates that the
393   field may or may not be available in the source data.  If the
394   field is absent, no trailing field separator is written.
395</para>
396            <para>This attribute is most useful when paired with &quot;no_delim_before&quot; as
397   it allows you to concatenate fields without concern for whether those
398   fields are actually populated or not.
399</para>
400         </listitem>
401      </itemizedlist>
402      <para>There are several different types of fields that may be defined.  Each field
403consists of three pieces of information: the FIELD TYPE, a DEFAULT VALUE, and
404a PRINTF CONVERSION (for output).  In many cases, not all pieces are used,
405but all 3 pieces are required.   Additionally, an fourth field is supported
406that modifies the behaviour of the field being described.
407</para>
408      <para>FIELDS should be defined in the style file in the logical order that they
409appear in the data, from left to right.  This is the order in which they are
410parsed from input and written to output.
411</para>
412      <para>The fields used by the XCSV parser are as follows:
413</para>
414      <section id="style_def_ignore">
415         <title>IGNORE</title>
416         <para>IGNORE fields are, guess what, ignored on input.   Internally, IGNORE
417   fields are treated as CHARACTER data, and as such, require a printf
418   conversion for a character array.
419</para>
420         <para>examples:
421</para>
422         <screen format="linespecific">IFIELD IGNORE,&quot;&quot;,&quot;%14.14s&quot;   # (writes a 14 character blank field)
423   IFIELD IGNORE,&quot;&quot;,&quot;%s&quot;        # (writes a blank field on output)
424</screen>
425      </section>
426      <section id="style_def_constant">
427         <title>CONSTANT</title>
428         <para>CONSTANT fields are, of course, constant.  They are ignored on input,
429   however they write CONSTANT data on output.  As such, they require a
430   DEFAULT VALUE and a printf conversion for a character array.
431</para>
432         <para>examples:
433</para>
434         <screen format="linespecific">IFIELD CONSTANT,&quot;FFFFFF&quot;,&quot;%s&quot;   # (writes &quot;FFFFFF&quot; in the field)
435   IFIELD CONSTANT,&quot;01/01/70&quot;,&quot;%s&quot; # (a constant date field)
436</screen>
437      </section>
438      <section id="style_def_index">
439         <title>INDEX</title>
440         <para>An INDEX field is used ONLY on output.  The INDEX constant defines a field
441   that, at output, contains the sequence number of the waypoint being
442   written, starting at 0.  An index is managed internally as an INTEGER
443   and requires an INTEGER printf conversion.  An INDEX has one special
444   property.  The DEFAULT VALUE of the index is added to the index
445   on each iteration (to allow indexes starting at 1, 100, etc..).
446</para>
447         <para>examples:
448</para>
449         <screen format="linespecific">IFIELD INDEX,&quot;0&quot;,&quot;%04d&quot;     # (Starts counting at zero)
450   IFIELD INDEX,&quot;&quot;,&quot;%04d&quot;      # (Starts counting at zero)
451   IFIELD INDEX,&quot;1&quot;,&quot;%04d&quot;     # (Starts counting at one)
452</screen>
453      </section>
454      <section id="style_def_shortname">
455         <title>SHORTNAME</title>
456         <para>A SHORTNAME is generally the waypoint name of the data being processed.
457   SHORTNAME maps directly to the GPSBabel variable -&gt;shortname.  A SHORTNAME
458   is CHARACTER data and requires a character array printf conversion.
459</para>
460         <para>example:
461</para>
462         <screen format="linespecific">IFIELD SHORTNAME,&quot;&quot;,&quot;%s&quot;
463</screen>
464      </section>
465      <section id="style_def_description">
466         <title>DESCRIPTION</title>
467         <para>A DESCRIPTION is generally a long description of the waypoint.  A
468   DESCRIPTION maps to the GPSBabel variable -&gt;description and is otherwise
469   handled exactly like a SHORTNAME.
470</para>
471         <para>examples:
472</para>
473         <screen format="linespecific">IFIELD DESCRIPTION,&quot;&quot;,&quot;%s&quot;
474</screen>
475      </section>
476      <section id="style_def_notes">
477         <title>NOTES</title>
478         <para>NOTES are generally everything else about a waypoints. NOTES map to the
479   GPSBabel variable -&gt;notes and is otherwise handled exactly like a
480   SHORTNAME.
481</para>
482      </section>
483      <section id="style_def_url">
484         <title>URL</title>
485         <para>URL is a URL for the waypoint.  URL maps to the GPSBabel variable
486   -&gt;url and is otherwise handled exactly like a SHORTNAME.
487</para>
488         <para>example:
489</para>
490         <screen format="linespecific">IFIELD URL,&quot;&quot;,&quot;%s&quot;
491</screen>
492      </section>
493      <section id="style_def_urllinktext">
494         <title>URL_LINK_TEXT</title>
495         <para>URL_LINK_TEXT is a textual description of where a URL points.
496   URL_LINK_TEXT maps to the GPSBabel variable -&gt;url_link_text and
497   is otherwise handled exactly like a SHORTNAME.
498</para>
499         <para>example:
500</para>
501         <screen format="linespecific">IFIELD URL_LINK_TEXT,&quot;&quot;,&quot;%s&quot;
502</screen>
503      </section>
504      <section id="style_def_icondescr">
505         <title>ICON_DESCR</title>
506         <para>ICON_DESCR is a textual description of an icon type for a waypoint.
507   ICON_DESCR maps to the GPSBabel variable -&gt;icon_desc and is otherwise
508   handled exactly like a SHORTNAME.
509</para>
510         <para>example:
511</para>
512         <screen format="linespecific">IFIELD ICON_DESCR,&quot;&quot;,&quot;%s&quot;
513</screen>
514      </section>
515      <section id="style_def_latdec">
516         <title>LAT_DECIMAL</title>
517         <para>LAT_DECIMAL defines LATITUDE in DECIMAL format.  Note that this is a PURE
518   signed decimal format (i.e. -91.0000).  This data is handled internally as
519   a DOUBLE PRECISION FLOAT and requires a FLOATING POINT printf conversion.
520</para>
521         <para>example:
522</para>
523         <screen format="linespecific">IFIELD LAT_DECIMAL,&quot;&quot;,&quot;%f&quot;
524</screen>
525      </section>
526      <section id="style_def_londec">
527         <title>LON_DECIMAL</title>
528         <para>See LAT_DECIMAL, except LON_DECIMAL defines LONGITUDE.
529</para>
530      </section>
531      <section id="style_def_latint32">
532         <title>LAT_INT32DEG</title>
533         <para>LAT_INT32DEG defines LATITUDE in what I call INT32DEGREES.  This value is
534   a signed LONG INTEGER and requires a LONG INTEGER printf conversion.
535   (This format is only used by some DeLorme products.)
536</para>
537         <para>example:
538</para>
539         <screen format="linespecific">IFIELD LAT_INT32DEG,&quot;&quot;,&quot;%ld&quot;
540</screen>
541      </section>
542      <section id="style_def_lonint32">
543         <title>LON_INT32DEG</title>
544         <para>See LON_INT32DEG except LON_INT32DEG defines LONGITUDE.
545</para>
546      </section>
547      <section id="style_def_latdirdec">
548         <title>LAT_DECIMALDIR / LAT_DIRDECIMAL</title>
549         <para>LAT_DECIMALDIR and LAT_DIRDECIMAL  define LATITUDE in DECIMAL format
550   with the added bonus of a 'N/S' or 'E/W' direction character.  This data
551   is handled internally as a DOUBLE PRECISION FLOAT and a single
552   CHARACTER and requires a FLOATING POINT as well as a CHARACTER printf
553   conversion.  The only difference between the two is whether the directional
554   character appears before (LAT_DIRDECIMAL) or after (LAT_DECIMALDIR) the
555   decimal number.
556</para>
557         <para>examples:
558</para>
559         <screen format="linespecific">IFIELD LAT_DECIMALDIR,&quot;&quot;,&quot;%f %c&quot;     #  (writes 31.333 N)
560   IFIELD LAT_DIRDECIMAL,&quot;&quot;,&quot;%c %f&quot;     #  (writes N 31.333)
561</screen>
562      </section>
563      <section id="style_def_londirdec">
564         <title>LON_DECIMALDIR / LON_DIRDECIMAL</title>
565         <para>Same as LAT_DECIMALDIR / LAT_DIRDECIMAL except LON_ defines LONGITUDE.
566</para>
567      </section>
568      <section id="style_def_latlondir">
569         <title>LAT_DIR / LON_DIR</title>
570         <para>LAT_DIR returns the single character 'N' or 'S' depending on the
571   hemisphere of the latitude.  LON_DIR returns 'E' or 'W' depending on
572   the hemisphere of the longitude.
573</para>
574      </section>
575      <section id="style_def_lathuman">
576         <title>LAT_HUMAN_READABLE</title>
577         <para>LAT_HUMAN_READABLE defines LATITUDE in a human-readable format.  This
578   format is probably the most expressive format.  It is similar to
579   LAT_DECIMALDIR in that it requires multiple printf conversions, but it
580   is far more flexible as to the contents of those conversions.  On read,
581   the printf conversions are ignored and GPSBabel attempts to determine the
582   latitude and longitude based on what is in the file.
583</para>
584         <para>examples:
585</para>
586         <screen format="linespecific">#  (writes N 31 40.000)
587   IFIELD LAT_HUMAN_READABLE,&quot;&quot;,&quot;%c %d %f&quot;
588   #  (writes &quot;31 deg 40.000 min N&quot;)
589   IFIELD LAT_HUMAN_READABLE,&quot;&quot;,&quot;%d deg %f min %c&quot;
590   #  Note that this string will confuse the reading routine due
591   #  to the letter &quot;n&quot; in &quot;min&quot; and the letter &quot;e&quot; in &quot;deg.&quot;
592   # (writes 31 40 00.000N)
593   IFIELD LAT_HUMAN_READABLE,&quot;&quot;,&quot;%d %d %f%c&quot;
594</screen>
595      </section>
596      <section id="style_def_map_en_bng">
597         <title>MAP_EN_BNG</title>
598         <para>MAP_EN_BNG converts coordinates from/to British National Grid (BNG).
599</para>
600         <para>The only supported order of the items is: Map,Easting,Northing.
601   During output all coordinates have to be located within this limited area.
602</para>
603         <para>examples:
604</para>
605         <screen format="linespecific">IFIELD MAP_EN_BNG,&quot;&quot;,&quot;%s%5d %5d&quot;   #  (writes i.e. &quot;SJ00001 00001&quot;)
606   IFIELD MAP_EN_BNG,&quot;&quot;,&quot;%s %d %d&quot;    #  (writes i.e. &quot;TQ 888 999&quot;)
607</screen>
608      </section>
609      <section id="style_def_lonhuman">
610         <title>LON_HUMAN_READABLE</title>
611         <para>See LAT_HUMAN_READABLE except LON_HUMAN_READABLE defines LONGITUDE.
612</para>
613      </section>
614      <section id="style_def_latlonhuman">
615         <title>LATLON_HUMAN_READABLE</title>
616         <para>LATLON_HUMAN_READABLE is like LAT_HUMAN_READABLE and LON_HUMAN_READABLE
617   except that it reads and writes both latitude and longitude as a single
618   field.  On write, the same format specifier is used for both coordinates.
619   On read, GPSBabel does exactly the same thing it does for
620   LAT_HUMAN_READABLE or LON_HUMAN_READABLE.
621</para>
622         <para>example:
623</para>
624         <screen format="linespecific">IFIELD LATLON_HUMAN_READABLE,&quot;&quot;,&quot;%c %d %f&quot;
625           # (writes &quot;N 31 40.126 W 85 09.62&quot; as a single field)
626</screen>
627      </section>
628      <section id="style_def_latnmea">
629         <title>LAT_NMEA</title>
630         <para>Defines the latitude in the format used by the NMEA standard which is
631   degrees multiplied by 100 plus decimal minutes.
632</para>
633         <para>example:
634</para>
635         <screen format="linespecific">IFIELD  LAT_NMEA, &quot;%f&quot;, &quot;%08.3f&quot;     # (writes  3558.322)
636</screen>
637      </section>
638      <section id="style_def_latddmmdir">
639         <title>LAT_DDMMDIR</title>
640         <para>Derived from the LAT_NMEA latitude format, with degrees * 100 plus decimal
641minutes, but using an additional specifier to position the  'N' or 'S' instead of a leading minus sign (or
642absence thereof) to give direction from zero.
643</para>
644         <para>
645            <screen format="linespecific">IFIELD LAT_DDMMDIR, &quot;%f&quot;, &quot;%08.3f%c&quot; # (writes &quot;5334.192S&quot; giving -53.56987 degrees latitude)
646</screen>
647         </para>
648      </section>
649      <section id="style_def_lonnmea">
650         <title>LON_NMEA</title>
651         <para>Defines the longitude in the format used by the NMEA standard which is
652   degrees multiplied by 100 plus decimal minutes.
653</para>
654         <para>Example:
655</para>
656         <screen format="linespecific">IFIELD  LON_NMEA, &quot;%f&quot;, &quot;%010.3f&quot;  # (writes -08708.082)
657</screen>
658      </section>
659      <section id="style_def_londdmmdir">
660         <title>LON_DDMMDIR</title>
661         <para>Derived from the LON_NMEA longitude format, with degrees * 100 plus decimal minutes, but using an additional character format character to position the
662'E' or 'W' instead of a leading minus sign (or absence thereof) to give direction from zero.
663</para>
664         <para>Example:
665</para>
666         <screen format="linespecific">IFIELD LON_DDMMDIR, &quot;%f&quot;, &quot;%010.3f%c&quot; # (writes &quot;01232.745W&quot; giving -12.54575 degrees
667longitude)
668</screen>
669      </section>
670      <section id="style_def_latlon_10ex">
671         <title>LAT_10EX / LON_10EX</title>
672         <para>Defines the latitude or longitude in the format used i.e. by TomTom Navigator
673   itinerary files. It is degrees multiplied by 10 power X. X have to be replaced with
674   a valid decimal value. A factor of 10000 would be generated by LAT_10E5 as shown
675   in the examples below.
676</para>
677         <para>examples:
678</para>
679         <screen format="linespecific">IFIELD  LAT_10E5, &quot;%f&quot;, &quot;%.f&quot;       # (writes  3558322)
680</screen>
681         <screen format="linespecific">IFIELD  LON_10E5, &quot;%f&quot;, &quot;%.f&quot;       # (writes -8708082)
682</screen>
683      </section>
684      <section id="style_def_utm">
685         <title>UTM</title>
686         <para>A location in UTM has several components: a zone, a northing, and an easting.   The UTM format specifier is the most common representation of these.
687</para>
688         <para>example: </para>
689         <screen format="linespecific">IFIELD UTM, &quot;&quot;, &quot;%s&quot; # writes 6S 519045 3984035  -the easting is first by convention.</screen>
690      </section>
691      <section id="style_def_utm_easting">
692         <title>UTM_EASTING</title>
693         <para>This is the decimal component representing the easting
694</para>
695         <para>example: </para>
696         <screen format="linespecific">IFIELD UTM_EASTING, &quot;&quot;, &quot;%.0f&quot;  # outputs 519045
697</screen>
698      </section>
699      <section id="style_def_utm_northing">
700         <title>UTM_NORTHING</title>
701         <para>This is the decimal component representing the northing
702</para>
703         <para>example: </para>
704         <screen format="linespecific">IFIELD UTM_NORTHING &quot;&quot;, &quot;%.0f&quot;  # outputs 3984035
705</screen>
706      </section>
707      <section id="style_def_utm_zone">
708         <title>UTM_ZONE</title>
709         <para>The UTM zone.
710</para>
711         <para>example: </para>
712         <screen format="linespecific">IFIELD UTM_ZONE &quot;&quot;, &quot;%d&quot;  # outputs 6
713</screen>
714      </section>
715      <section id="style_def_utm_zonec">
716         <title>UTM_ZONEC</title>
717         <para>The UTM Zone character.
718</para>
719         <para>example: </para>
720         <screen format="linespecific">IFIELD UTM_ZONEC &quot;&quot;, &quot;%c&quot;  # outputs S
721</screen>
722      </section>
723      <section id="style_def_utm_zonef">
724         <title/>
725         <para>The full UTM zone and latitude band.
726</para>
727         <para>example: </para>
728         <screen format="linespecific">IFIELD UTM_ZONEF &quot;&quot;, &quot;%d%c&quot;  # outputs 6S
729</screen>
730      </section>
731      <section id="style_def_altfeet">
732         <title>ALT_FEET</title>
733         <para>ALT_FEET is the position's ALTITUDE in FEET.  This value is treated as
734   a SIGNED DOUBLE PRECISION FLOAT and requires a FLOATING POINT printf
735   conversion.
736</para>
737         <para>example:
738</para>
739         <screen format="linespecific">IFIELD ALT_FEET,&quot;&quot;,&quot;%.0f&quot;
740</screen>
741      </section>
742      <section id="style_def_altmeters">
743         <title>ALT_METERS</title>
744         <para>ALT_METERS is identical to ALT_FEET with the exception that the altitude
745   is in METERS.
746</para>
747      </section>
748      <section id="style_def_heartrate">
749         <title>HEART_RATE</title>
750         <para>Heart rate, measured in beats per minute.  Only valid for units with
751   heart rate monitor features (i.e. Garmin Forerunner 301).
752</para>
753         <para>example:
754</para>
755         <screen format="linespecific">IFIELD HEART_RATE,&quot;&quot;,&quot;%d&quot;
756</screen>
757      </section>
758      <section id="style_def_cadence">
759         <title>CADENCE</title>
760         <para>Cadence in revolutions per minute.  Only valid for units with
761   heart rate monitor features (i.e. Garmin Edge 305).
762</para>
763         <para>example:
764</para>
765         <screen format="linespecific">IFIELD CADENCE,&quot;&quot;,&quot;%d&quot;
766</screen>
767      </section>
768      <section id="style_def_power">
769         <title>POWER</title>
770         <para>Cycling power in Watts.  Only valid for units with power meter
771   features (i.e. Garmin Edge 305).
772</para>
773         <para>example:
774</para>
775         <screen format="linespecific">IFIELD POWER,&quot;&quot;,&quot;%.1f&quot;
776</screen>
777      </section>
778      <section id="style_def_temperature">
779         <title>TEMPERATURE</title>
780         <para>Temperature in degrees Celsius.
781</para>
782         <para>example:
783</para>
784         <screen format="linespecific">IFIELD TEMPERATURE,&quot;&quot;,&quot;%.1f&quot;
785</screen>
786      </section>
787      <section id="style_def_temperaturef">
788         <title>TEMPERATURE_F</title>
789         <para>Temperature in degrees Fahrenheit.
790</para>
791         <para>example:
792</para>
793         <screen format="linespecific">IFIELD TEMPERATURE_F,&quot;&quot;,&quot;%.1f&quot;
794</screen>
795      </section>
796      <section id="style_def_exceltime">
797         <title>EXCEL_TIME</title>
798         <para>EXCEL_TIME is the waypoint's creation time, if any.  This is actually
799   the decimal days since 1/1/1900 and is handled internally as a DOUBLE
800   PRECISION FLOAT and requires a FLOATING POINT printf conversion.
801</para>
802         <para>example:
803</para>
804         <screen format="linespecific">IFIELD EXCEL_TIME,&quot;&quot;,&quot;%11.5f&quot;
805</screen>
806      </section>
807      <section id="style_def_timettime">
808         <title>TIMET_TIME</title>
809         <para>TIMET_TIME is the waypoint's creation time, if any.  This is actually
810   the integer seconds since 1970-01-01T00:00:00 UTC. It
811   is handled internally as a 64 bit integer and requires a LONG LONG INTEGER
812   printf conversion.
813</para>
814         <para>example:
815</para>
816         <screen format="linespecific">IFIELD TIMET_TIME,&quot;&quot;,&quot;%lld&quot;
817</screen>
818      </section>
819      <section id="style_def_timettimems">
820         <title>TIMET_TIME_MS</title>
821         <para>TIMET_TIME_MS is the same as TIMET_TIME, but expressed in milliseconds.
822   It too is handled internally as a 64 bit integer and requires a LONG LONG INTEGER
823   printf conversion.
824</para>
825         <para>example:
826</para>
827         <screen format="linespecific">IFIELD TIMET_TIME_MS,&quot;&quot;,&quot;%lld&quot;
828</screen>
829      </section>
830      <section id="style_def_yyyymmdd">
831         <title>YYYYMMDD_TIME</title>
832         <para>YYYYMMDD_TIME is the waypoint's creation time, if any.  It's a single
833   decimal field containing four digits of year, two digits of month,
834   and two digits of date.   Internally it is a LONG INTEGER and thus
835   requires a LONG INTEGER printf conversion.
836</para>
837         <para>example:
838</para>
839         <screen format="linespecific">IFIELD YYYYMMDD_TIME,&quot;&quot;,&quot;%ld&quot;
840</screen>
841      </section>
842      <section id="style_def_gmttime">
843         <title>GMT_TIME</title>
844         <para>GMT_TIME is the waypoint's creation time, in UTC time zone.  It uses the
845   strptime conversion format tags.
846</para>
847         <para>example:
848</para>
849         <screen format="linespecific">IFIELD GMT_TIME,&quot;&quot;,&quot;%m/%d/%Y %I:%M:%D %p&quot;
850</screen>
851         <para>Search the web for 'strptime man page' for details strptime, but one
852   such page can be found at
853
854
855
856
857
858
859
860            <ulink url="http://www.die.net/doc/linux/man/man3/strptime.3.html">http://www.die.net/doc/linux/man/man3/strptime.3.html</ulink></para>
861      </section>
862      <section id="style_def_localtime">
863         <title>LOCAL_TIME</title>
864         <para>LOCAL_TIME is the waypoint's creation time, in the local
865 time zone.  It uses strptime conversion format tags.  See GMT_TIME for a
866 reference.
867</para>
868         <para>example:
869</para>
870         <screen format="linespecific">IFIELD LOCAL_TIME,&quot;&quot;,&quot;%y-%m-%d&quot;
871</screen>
872      </section>
873      <section id="style_def_hmsgtime">
874         <title>HMSG_TIME</title>
875         <para>HMSG_TIME parses up to three time parts and am/pm string to add
876   this value to the previously parsed *_TIME field that contains
877   only a date.  On output, will print the time in UTC.
878</para>
879         <para>example:
880</para>
881         <screen format="linespecific">IFIELD HMSG_TIME,&quot;&quot;,&quot;%d:%d:%d %s&quot;
882</screen>
883      </section>
884      <section id="style_def_hmsltime">
885         <title>HMSL_TIME</title>
886         <para>HMSG_TIME parses up to three time parts and am/pm string to add
887   this value to the previously parsed *_TIME field that contains
888   only a date.  On output, will print the time in local time.
889</para>
890         <para>example:
891</para>
892         <screen format="linespecific">IFIELD HMSL_TIME,&quot;&quot;,&quot;%dh%dm&quot;
893</screen>
894      </section>
895      <section id="style_def_isotime">
896         <title>ISO_TIME</title>
897         <para>ISO_TIME is the waypoint's creation time, in ISO 8601 format,
898   which include time zone information.
899   It is expected to be in the format yyyy-mm-ddThh:mm:sszzzzz
900   where zzzzzz is the local time offset or the character Z
901   for UTC time.
902   On output, UTC 'Z' time zone will always be used.
903</para>
904         <para>example:
905</para>
906         <screen format="linespecific">IFIELD ISO_TIME,&quot;&quot;,&quot;%s&quot;
907</screen>
908      </section>
909      <section id="style_def_isotimems">
910         <title>ISO_TIME_MS</title>
911         <para>ISO_TIME_MS is much like ISO_TIME, but expresses milliseconds at the
912   end of the timestamp.
913   It is thus in the format yyyy-mm-ddThh:mm:ss.SSSzzzzz
914   where 'SSS' is milliseconds and zzzzzz is the local time offset
915   or the character Z for UTC time.
916   On output, UTC 'Z' time zone will always be used.
917</para>
918         <para>example:
919</para>
920         <screen format="linespecific">IFIELD ISO_TIME_MS,&quot;&quot;,&quot;%s&quot;
921</screen>
922      </section>
923      <section id="style_def_nettime">
924         <title>NET_TIME</title>
925         <para>Microsoft dot net represents times in 100 nanosecond intervals since midnight
926  Jan 1/0001 GMT, giving absurdly large numbers like 633943150010000000 for
927  mid-November, 2009.  NET_TIME is how to represent those in GPSBabel.
928</para>
929         <para>example:
930</para>
931         <screen format="linespecific">IFIELD NET_TIME,&quot;&quot;,&quot;%f&quot;
932</screen>
933      </section>
934      <section id="style_def_geodiff">
935         <title>GEOCACHE_DIFF</title>
936         <para>GEOCACHE_DIFF is valid only for geocaches and represents a DOUBLE
937   PRECISION FLOAT.  This is the geocache &quot;difficulty&quot; rating as defined by
938   Groundspeak.  A &quot;three and a half star&quot; cache would therefore be &quot;3.5&quot;
939</para>
940         <para>example:
941</para>
942         <screen format="linespecific">IFIELD GEOCACHE_DIFF,&quot;&quot;,&quot;%3.1f&quot;
943</screen>
944      </section>
945      <section id="style_def_geoterr">
946         <title>GEOCACHE_TERR</title>
947         <para>GEOCACHE_TERR is valid only for geocaches and represents a DOUBLE
948   PRECISION FLOAT.  This is the geocache &quot;terrain&quot; rating as defined
949   by Groundspeak.  A &quot;three and a half star&quot; cache would therefore be &quot;3.5&quot;
950</para>
951         <para>example:
952</para>
953         <screen format="linespecific">IFIELD GEOCACHE_TERR,&quot;&quot;,&quot;%3.1f&quot;
954</screen>
955      </section>
956      <section id="style_def_geocontainer">
957         <title>GEOCACHE_CONTAINER</title>
958         <para>GEOCACHE_CONTAINER is valid only for geocaches and is heavily influenced
959   by the Groundspeak container types.   Examples would include &quot;Micro&quot;
960   and &quot;Virtual&quot;.
961</para>
962         <para>example:
963</para>
964         <screen format="linespecific">GEOCACHE_CONTAINER,&quot;&quot;,&quot;%s&quot;
965</screen>
966      </section>
967      <section id="style_def_geotype">
968         <title>GEOCACHE_TYPE</title>
969         <para>GEOCACHE_TYPE is valid only for geocaches and is heavily influenced
970   by the Groundspeak cache types.   Examples would include &quot;Event cache&quot;
971   and &quot;Multi-Cache&quot;.
972</para>
973         <para>example:
974</para>
975         <screen format="linespecific">GEOCACHE_TYPE,&quot;&quot;,&quot;%s&quot;
976</screen>
977      </section>
978      <section id="style_def_geoplacer">
979         <title>GEOCACHE_PLACER</title>
980         <para>GEOCACHE_PLACER is a string containing the name of the placer of a
981   geocache.
982</para>
983         <para>example:
984</para>
985         <screen format="linespecific">GEOCACHE_PLACER,&quot;&quot;,&quot;%s&quot;
986</screen>
987      </section>
988      <section id="style_def_isavailable">
989         <title>GEOCACHE_ISAVAILABLE</title>
990         <para>GEOCACHE_ISAVAILABLE is a string containing &quot;True&quot; or &quot;False&quot;
991   indicating whether a geocache is currently available or not.
992</para>
993         <para>example:
994</para>
995         <screen format="linespecific">GEOCACHE_ISAVAILABLE,&quot;&quot;,&quot;%s&quot;
996</screen>
997      </section>
998      <section id="style_def_isarchived">
999         <title>GEOCACHE_ISARCHIVED</title>
1000         <para>GEOCACHE_ISARCHIVED is a string containing &quot;True&quot; or &quot;False&quot;
1001   indicating whether a geocache has been archived.
1002</para>
1003         <para>example:
1004</para>
1005         <screen format="linespecific">GEOCACHE_ISARCHIVED,&quot;&quot;,&quot;%s&quot;
1006</screen>
1007      </section>
1008      <section id="style_def_geofound">
1009         <title>GEOCACHE_LAST_FOUND</title>
1010         <para>A long integer in format YYYYMMDD containing the last time this geocache
1011   was found.
1012</para>
1013         <para>example:
1014</para>
1015         <screen format="linespecific">GEOCACHE_LAST_FOUND,&quot;&quot;,&quot;%ld&quot;
1016</screen>
1017      </section>
1018      <section id="style_def_geohint">
1019         <title>GEOCACHE_HINT</title>
1020         <para>The hint for this geocache.   No additional transformation (such as rot13)
1021   will be performed on this string.
1022</para>
1023         <para>example:
1024</para>
1025         <screen format="linespecific">GEOCACHE_HINT,&quot;&quot;,&quot;%s&quot;
1026</screen>
1027      </section>
1028      <section id="style_def_pathdistmi">
1029         <title>PATH_DISTANCE_MILES</title>
1030         <para>PATH_DISTANCE_MILES outputs the total length of the route or track from
1031   the start point to the current point, in miles.  This and the altitude
1032   could be used to create an elevation profile.  PATH_DISTANCE_MILES is
1033   a DOUBLE PRECISION FLOAT.
1034</para>
1035         <para>PATH_DISTANCE_MILES is not valid as an input field.
1036</para>
1037         <para>PATH_DISTANCE_MILES is only meaningful if the data comes from a track
1038   or a route; waypoint data will generate essentially meaningless output.
1039</para>
1040         <para>example:
1041</para>
1042         <screen format="linespecific">PATH_DISTANCE_MILES,&quot;&quot;,&quot;%f&quot;
1043</screen>
1044      </section>
1045      <section id="style_def_pathdistkm">
1046         <title>PATH_DISTANCE_KM</title>
1047         <para>PATH_DISTANCE_KM is like PATH_DISTANCE_MILES except it outputs the
1048   length in kilometers.
1049</para>
1050      </section>
1051      <section id="style_def_pathdistm">
1052         <title>PATH_DISTANCE_METERS</title>
1053         <para>PATH_DISTANCE_METERS is like PATH_DISTANCE_MILES except it outputs the
1054   length in meters.
1055</para>
1056      </section>
1057      <section id="style_def_pathspeed">
1058         <title>PATH_SPEED</title>
1059         <para>Speed in meters per second. GPSBabel does NOT calculate this data by
1060   default; it is read from the input file if present.  (If not present,
1061   it may be calculated with the
1062
1063
1064
1065
1066
1067
1068            <link linkend="filter_track">track</link>
1069            filter.)</para>
1070         <para>example:
1071</para>
1072         <screen format="linespecific">PATH_SPEED,&quot;&quot;,&quot;%f&quot;
1073</screen>
1074      </section>
1075      <section id="style_def_pathspeed_kph">
1076         <title>PATH_SPEED_KPH</title>
1077         <para>Like PATH_SPEED but means kilometers per hour.
1078</para>
1079         <para>example:
1080</para>
1081         <screen format="linespecific">PATH_SPEED_KPH,&quot;&quot;,&quot;%.1f&quot;
1082</screen>
1083      </section>
1084      <section id="style_def_pathspeed_mph">
1085         <title>PATH_SPEED_MPH</title>
1086         <para>Like PATH_SPEED but means miles per hour.
1087</para>
1088         <para>example:
1089</para>
1090         <screen format="linespecific">PATH_SPEED_MPH,&quot;&quot;,&quot;%.1f&quot;
1091</screen>
1092      </section>
1093      <section id="style_def_pathspeed_knots">
1094         <title>PATH_SPEED_KNOTS</title>
1095         <para>Like PATH_SPEED but means knots (nautical).
1096</para>
1097         <para>example:
1098</para>
1099         <screen format="linespecific">PATH_SPEED_KNOTS,&quot;&quot;,&quot;%.1f&quot;
1100</screen>
1101      </section>
1102      <section id="style_def_pathcourse">
1103         <title>PATH_COURSE</title>
1104         <para>Course in degrees.  GPSBabel does not calculate this data by default;
1105   it is read from the input file if present.  (If not present, it may be
1106   calculated with the
1107
1108
1109
1110
1111
1112
1113            <link linkend="filter_track">track</link>
1114            filter.)</para>
1115         <para>example:
1116</para>
1117         <screen format="linespecific">PATH_COURSE,&quot;&quot;,&quot;%f&quot;
1118</screen>
1119      </section>
1120      <section id="style_def_dop">
1121         <title>GPS_HDOP / GPS_VDOP / GPS_PDOP</title>
1122         <para>GPS horizontal / vertical / positional dilution of precision
1123   parameters. Needs float conversion.
1124</para>
1125         <para>example:
1126</para>
1127         <screen format="linespecific">GPS_HDOP,&quot;&quot;,&quot;%f&quot;
1128</screen>
1129      </section>
1130      <section id="style_def_gpssat">
1131         <title>GPS_SAT</title>
1132         <para>Number of satellites used for determination of the position. Needs
1133   integer conversion.
1134</para>
1135         <para>example:
1136</para>
1137         <screen format="linespecific">GPS_SAT,&quot;&quot;,&quot;%d&quot;
1138</screen>
1139      </section>
1140      <section id="style_def_gpsfix">
1141         <title>GPS_FIX</title>
1142         <para>Type of fix (see GPX spec or
1143
1144
1145
1146
1147
1148
1149            <link linkend="filter_track">track</link>
1150            filter). Needs string conversion.</para>
1151         <para>example:
1152</para>
1153         <screen format="linespecific">GPS_FIX,&quot;&quot;,&quot;%s&quot;
1154</screen>
1155      </section>
1156      <section id="style_track_new">
1157         <title>TRACK_NEW</title>
1158         <para>If '1', it indicates that this trackpoint is the first point of a new track.  Needs integer conversion.</para>
1159         <para>example:
1160
1161
1162
1163
1164
1165
1166            <screen format="linespecific">IFIELD TRACK_NEW,&quot;&quot;,&quot;%d&quot;</screen></para>
1167      </section>
1168      <section id="style_track_name">
1169         <title>TRACK_NAME</title>
1170         <para>The name of the track currently being operated on.  Needs string conversion.</para>
1171         <para>example:
1172
1173
1174
1175
1176
1177
1178            <screen format="linespecific">TRACK_NAME, &quot;&quot;, &quot;%s&quot;</screen></para>
1179      </section>
1180      <section id="style_route_name">
1181         <title>ROUTE_NAME</title>
1182         <para>The name of the route currently being operated on.  Needs string conversion.</para>
1183         <para>example:
1184            <screen format="linespecific">ROUTE_NAME, &quot;&quot;, &quot;%s&quot;</screen></para>
1185      </section>
1186      <section id="style_street_addr">
1187         <title>STREET_ADDR</title>
1188         <para>Street address including house number.  Notice that this is not used for any geocoding, it's merely textual description associated with a position.</para>
1189         <para>example:
1190
1191            <screen format="linespecific">STREET_ADDR, &quot;&quot;, &quot;%s&quot;</screen></para>
1192      </section>
1193      <section id="style_city">
1194         <title>CITY</title>
1195         <para>The name of a city. Sometimes part of &quot;Points of Interest&quot;.   This is simple textual data associated with a position, no geocoding will be done..</para>
1196         <para>example:
1197            <screen format="linespecific">CITY, &quot;&quot;, &quot;%s&quot;</screen></para>
1198      </section>
1199      <section id="style_country">
1200         <title>COUNTRY</title>
1201         <para>The name of a country associated with a position.</para>
1202         <para>example:
1203
1204
1205
1206
1207
1208
1209            <screen format="linespecific">COUNTRY, &quot;&quot;, &quot;%s&quot;</screen></para>
1210      </section>
1211      <section id="style_email">
1212         <title>EMAIL</title>
1213         <para>An email address associated with a position.</para>
1214         <para>example:
1215
1216
1217
1218
1219
1220
1221            <screen format="linespecific">EMAIL, &quot;&quot;, &quot;%s&quot;</screen></para>
1222      </section>
1223      <section id="style_facility">
1224         <title>FACILITY</title>
1225         <para>The name of a facility to associate with a position.</para>
1226         <para>example:
1227
1228
1229
1230
1231
1232
1233            <screen format="linespecific">FACILITY, &quot;&quot;, &quot;%s&quot;</screen></para>
1234      </section>
1235      <section id="style_phone_nr">
1236         <title>PHONE_NR</title>
1237         <para>A phone number associated with a position.  This is just textual data attached for convenience.</para>
1238         <para>example:
1239
1240
1241
1242
1243
1244
1245            <screen format="linespecific">PHONE_NR, &quot;&quot;, &quot;%s&quot;</screen></para>
1246      </section>
1247      <section id="style_postal_code">
1248         <title>POSTAL_CODE</title>
1249         <para>A postal code to associate with a position.  It is freeform text and is not used by GPSBabel for any geocoding or such.</para>
1250         <para>example:
1251
1252
1253
1254
1255
1256
1257            <screen format="linespecific">POSTAL_CODE, &quot;&quot;, &quot;%s&quot;</screen></para>
1258      </section>
1259      <section id="style_filename">
1260         <title>FILENAME</title>
1261         <para>The name of the input file from where the points were loaded. This field is available only on output.</para>
1262         <para>example:
1263
1264
1265
1266
1267
1268
1269            <screen format="linespecific">OFIELD FILENAME, &quot;&quot;, &quot;%s&quot;</screen></para>
1270      </section>
1271      <section id="style_format">
1272         <title>FORMAT</title>
1273         <para>The name of the input format from where format the points came. This field is available only on output.</para>
1274         <para>example:
1275
1276
1277
1278
1279
1280
1281            <screen format="linespecific">OFIELD FORMAT, &quot;&quot;, &quot;%s&quot;</screen></para>
1282      </section>
1283   </section>
1284   <!-- definitions -->
1285   <section id="style_examples">
1286      <title>Examples</title>
1287      <para>Here is one example style file from the GPSBabel source.
1288
1289
1290
1291
1292
1293
1294
1295         <literallayout># gpsbabel XCSV style file
1296#
1297# Format: Garmin POI
1298# Author: Robert Lipe
1299# Date: 10/07/2005
1300# Reference: http://forums.groundspeak.com/GC/index.php?showtopic=110641&amp;st=0&amp;#entry1752204
1301#
1302DESCRIPTION Garmin POI database
1303#
1304#
1305# FILE LAYOUT DEFINITIIONS:
1306#
1307FIELD_DELIMITER COMMA
1308RECORD_DELIMITER NEWLINE
1309BADCHARS COMMA
1310SHORTLEN 24
1311
1312#
1313# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:
1314#
1315IFIELD LON_HUMAN_READABLE, &quot;&quot;, &quot;%08.5f&quot;
1316IFIELD LAT_HUMAN_READABLE, &quot;&quot;, &quot;%08.5f&quot;
1317IFIELD SHORTNAME, &quot;&quot;, &quot;%s&quot;
1318IFIELD DESCRIPTION, &quot;&quot;, &quot;%s&quot;
1319
1320OFIELD LON_DECIMAL, &quot;&quot;, &quot;%08.5f&quot;
1321OFIELD LAT_DECIMAL, &quot;&quot;, &quot;%08.5f&quot;
1322OFIELD SHORTNAME, &quot;&quot;, &quot;%-.24s&quot;
1323OFIELD GEOCACHE_TYPE, &quot;&quot;, &quot; %-.4s&quot;, &quot;no_delim_before,optional&quot;
1324OFIELD GEOCACHE_CONTAINER, &quot;&quot;, &quot;/%-.4s &quot;, &quot;no_delim_before,optional&quot;
1325OFIELD GEOCACHE_DIFF, &quot;&quot;, &quot;(%3.1f&quot;, &quot;no_delim_before,optional&quot;
1326OFIELD GEOCACHE_TERR, &quot;&quot;, &quot;/%3.1f)&quot;, &quot;no_delim_before,optional&quot;
1327OFIELD DESCRIPTION, &quot;&quot;, &quot;%-.50s&quot;
1328</literallayout>
1329         When used on a Groundspeak Pocket Query, it will output lines that
1330look like:
1331
1332
1333         <literallayout>-76.76234,38.39123,GC5370 Loca/Virt (1.0/1.0),Dude.. Wheres my Limo??
1334-90.42345,38.55234,GCC8B Trad/Regu (2.0/2.0),Sweet Reward
1335-90.81456,38.62456,GC3091 Trad/Regu (1.5/2.0),Matson Hill
1336</literallayout>
1337         that are suitable for Garmin's POI loader.</para>
1338      <para>For additional examples, please see the
1339
1340
1341         <filename>*.style</filename>
1342         files in the
1343
1344
1345         <filename>style/</filename>
1346         subdirectory of the GPSBabel source tree or at the
1347
1348
1349         <ulink url="https://github.com/gpsbabel/gpsbabel/tree/master/style">online source.</ulink>
1350         .</para>
1351   </section>
1352   <!-- examples -->
1353   <section id="style_notes">
1354      <title>Miscellaneous Notes</title>
1355      <section id="style_notes_default">
1356         <title>Default Values</title>
1357         <para>Default values are supported for any output fields that contain pure
1358   character data output such as URL and NOTES.  Default values are only
1359   written on output and are not used to supplement missing input.  When
1360   using default values your mileage will vary greatly depending on the
1361   input formats used to populate waypoint data.
1362</para>
1363      </section>
1364   </section>
1365   <!-- notes -->
1366</appendix>
1367<!-- style -->
1368