1VIKING(1)                         Viking 1.8                         VIKING(1)
2
3
4

NAME

6       viking - program to manage GPS data
7

SYNOPSIS

9       viking [-d | --debug] [-V | --verbose]
10              [--latitude degrees] [--longitude degrees]
11              [-z | --zoom ZoomLevelOSM] [-m | --map MapId] [-x | --external]
12              [file...] | [-]
13
14       viking [-h | --help]
15
16       viking [-v | --version]
17

DESCRIPTION

19       Viking is a program to manage GPS data.
20
21       You can import and plot tracks, routes and waypoints, show
22       OpenStreetMap (OSM) and/or other maps, generate maps (using Mapnik),
23       geotag images, add coordinate lines, make new tracks, routes and
24       waypoints, hide different things, etc. It is written mainly in C with
25       some C++ and uses the GTK+ 2 toolkit. It is available for Linux, other
26       POSIX operating systems and Windows.
27
28       Homepage: http://viking.sf.net
29
30       Viking is licensed under the GNU GPL.
31

OPTIONS

33       file
34           Specify file to load at start.
35
36       -
37           Read input from standard in.
38
39       -d, --debug
40           Enable debug output.
41
42       -V, --verbose
43           Enable verbose output.
44
45       -?, --help
46           Show help options.
47
48       -v, --version
49           Show version.
50
51       --latitude
52           Set the initial position to the specified latitude in decimal
53           degrees.
54
55       --longitude
56           Set the initial position to the specified longitude in decimal
57           degrees.
58
59       -z, --zoom
60           Set the initial zoom level. The value is the OSM zoom level (0 -
61           22).
62
63       -m, --map
64           Add a map layer by specifying the map id. The value needs to match
65           one of the internal ids or an id from the maps configuration
66           extension (see below). Specifying a value of 0 will use the
67           configured map layer default.
68
69               Internal Map Ids:
70
71               OSM Mapnik = 13
72
73               OSM Cycle = 17
74
75               Mapquest OSM = 19
76
77       -e, --external
78           Load all specified GPX files in 'external' mode.
79
80           This is in contrast to importing the data and storing it in the
81           Viking file.
82

EXTENDING VIKING

84       Currently, viking has some extension points based on configuration
85       files. The file format is heavily inspired by the GtkBuilder file
86       format: you specify the class of the GObject to build and set its
87       properties. Technically, it is a XML file containing a "objects" root
88       element. Inside this element, you set a collection of "object".
89
90       Here is an example:
91
92           <objects>
93             <object class="ClassName">
94               <property name="property_name1">Property value</property>
95               <property name="property_name2">Property value</property>
96             </object>
97             ...
98           <objects>
99
100
101       You can find more examples in the documentation part of the
102       distribution.
103
104       Map Source. It is possible to add new map's sources. The file is
105       ~/.viking/maps.xml.  An example of the file in the distribution
106       doc/examples/maps.xml.  The VikSlippyMapSource allows to declare any
107       map's source working like OpenStreetMap. It supports the following
108       properties:
109
110       id
111           this is an integer and should be unique as it used to identify the
112           map source
113
114       name
115           a string (should be unique) that is used for the OSM style cache
116           directory name when the Map Cache directory is the default
117           (~/.viking-maps)
118
119       label
120           the text displayed in the map's source selection dialog
121
122       hostname
123           the server's hostname (eg. "tile.openstreetmap.org")
124
125       url
126           the parametrized address of the tile, in the spirit of C printf
127           format, with 3 "%d" fields for Z, X and Y (in that order) (eg.
128           "/%d/%d/%d.png")
129
130               Note
131               The full parametrized address can just be put in the URL field
132               and the hostname field doesn't need specifying.
133
134               e.g. "https://tile.openstreetmap.org/%d/%d/%d.png"
135
136       zoom-min (optional)
137           The minimum zoom value supported by the tile server. The Default is
138           0 if not specified.
139
140       zoom-max (optional)
141           The maximum zoom value supported by the tile server. The Default is
142           18 if not specified.
143
144           See Zoom Levels[1]
145
146       lat-min (optional)
147           The minimum latitude value in degrees supported by the tile server.
148           The Default is -90 degrees if not specified.
149
150       lat-max (optional)
151           The maximum latitude value in degrees supported by the tile server.
152           The Default is 90 degrees if not specified.
153
154       lon-min (optional)
155           The minimum longitude value in degrees supported by the tile
156           server. The Default is -180 degrees if not specified.
157
158       lon-max (optional)
159           The maximum longitude value in degrees supported by the tile
160           server. The Default is 180 degrees if not specified.
161
162       file-extension (optional)
163           The file extension of the files on disk. The default is .png
164
165           If the tile source URL ends in something other than .png, then this
166           parameter will need to match it.
167
168           This can also be useful in reading a tileset from other software
169           which may name tiles in an alternative form, e.g. for Mobile Atlas
170           creator it names them .png.tile
171
172               Note
173               The file types actually usable are those supported by GDK
174               Pixbuf Library, which includes at least PNG and JPEG.
175
176               Note
177               Remember to include the beginning '.' when specifying this
178               parameter.
179
180       switch-xy (optional)
181           Swap the X,Y values around in the URL parametrized ordering.
182
183           The default is false.
184
185       check-file-server-time (optional)
186           Sends the timestamp of the tile to the server, so the server can
187           decide whether it should send a new tile or not.
188
189           The default is false.
190
191       use-etag (optional)
192           Use and compare the ETag[2] value in determining whether to
193           download a newer tile. The default is false.
194
195           The ETag value is stored in a separate file in the same directory
196           as the tile to enable checking the value across multiple runs of
197           the program.
198
199       tilesize-x (optional)
200           The tile x size. The default is 256 pixels if not specified.
201
202       tilesize-y (optional)
203           The tile y size. The default is 256 pixels if not specified.
204
205       scale (optional)
206           The tile scale. The scale is 1 if not specified.
207
208               Note
209               Use a value of 2 to represent high res tiles. Don't change the
210               tilesize as the internal display size is still based on 256
211               pixels.
212       The VikTmsMapSource allows to declare any TMS service. It supports the
213       following properties (as per VikSlippyMapSource above):
214
215       id
216
217       label
218
219       hostname
220
221       url
222
223       check-file-server-time (optional)
224
225       zoom-min (optional)
226
227       zoom-max (optional)
228
229       lat-min (optional)
230
231       lat-max (optional)
232
233       lon-min (optional)
234
235       lon-max (optional)
236       The VikWmscMapSource allows to declare any WMS or WMS-C service. It
237       supports the following properties (as per VikSlippyMapSource above):
238
239       id
240
241       label
242
243       hostname
244
245       url
246
247       check-file-server-time (optional)
248
249       zoom-min (optional)
250
251       zoom-max (optional)
252
253       lat-min (optional)
254
255       lat-max (optional)
256
257       lon-min (optional)
258
259       lon-max (optional)
260
261       Go-to search engines. It is possible to add new new search engines for
262       the "Go-To" feature. The file is ~/.viking/goto_tools.xml.  An example
263       of the file in the distribution doc/examples/goto_tools.xml.
264       Currently, there is a single object class available: VikGotoXmlTool.
265       Such feature allows to declare any search engine using a XML format as
266       result.  The related properties are:
267
268       label
269           the text displayed in the Go-To dialog
270
271       url-format
272           the parametrized address of the query, in the spirit of C printf
273           format, with a single "%s" field (replaced by the query string)
274
275       lat-path
276           XML path of the latitude (eg.  /root/parent/elem)
277
278       lat-attr (optional)
279           name of the attribute (of previous element) containing the latitude
280
281       lon-path
282           XML path of the longitude (eg.  /root/parent/elem)
283
284       lon-attr (optional)
285           name of the attribute (of previous element) containing the longiude
286       As a facility (or readability) it is possible to set both path and
287       attribute name in a single property, like an XPath expression. To do
288       so, simply set both info in lat-path (or lon-path) in the following
289       format: /root/parent/elem@attribute.
290
291       External tools. It is possible to add new external tools. The file is
292       ~/.viking/external_tools.xml.  An example of the file in the
293       distribution doc/examples/external_tools.xml.  The VikWebtoolCenter
294       allows to declare any Webtool using a logic based on center coordinates
295       and zoom level value.  The related properties are:
296
297       label
298           the text displayed in the menu entry
299
300       url
301           the parametrized URL to open, in the spirit of C printf format,
302           with 2 "%s" and a "%d" fields for X, Y and Z (zoom level) (eg.
303           "http://hostname/?lat=%s&lon=%s&zoom=%d")
304       The VikWebtoolBounds allows to declare any Webtool using a logic based
305       on bounds coordinates.  The related properties are:
306
307       label
308           the text displayed in the menu entry
309
310       url
311           the parametrized address of the tile, in the spirit of C printf
312           format, with 4 "%s" fields for left, right, bottom and top (eg.
313           "http://hostname:8111/load_and_zoom?left=%s&right=%s&bottom=%s&top=%s")
314
315       Routing engine. It is possible to declare new routing engines. The file
316       is ~/.viking/routing.xml.  An example of the file in the distribution
317       doc/examples/routing.xml.  The VikRoutingWebEngine allows to declare a
318       routing engine available via HTTP.  The related properties are:
319
320       id
321           a string, should be unique as it used to identify the routing
322           engine
323
324       label
325           the text displayed in the menu entry
326
327       format
328           The GPSBabel format code to interpret the service response. By
329           default a GPX response is expected and processed internally.
330           However if the service returns different format then GPSBabel is
331           used to transform the text into something that Viking can
332           understand. Only formats that GPSBabel supports can be used: e.g.
333           'gpx', 'kml', 'gtrnctr' (for Garmin Training Center .tcx files),
334           etc...
335
336           Use gpsbabel --help on the command line to find out the supported
337           file types and their codes to process them.
338
339       url-base
340           the base URL of the web service (eg. "http://hostname/service?")
341
342       url-start-ll
343           the part of the URL setting the starting point location,
344           parametrized in the spirit of C printf format, with 2 "%s" for
345           coordinates (eg. "&start=%s,%s")
346
347       url-stop-ll
348           the part of the URL setting the end point location, parametrized in
349           the spirit of C printf format, with 2 "%s" for coordinates (eg.
350           "&stop=%s,%s")
351
352       url-via-ll (optional)
353           the part of the URL setting via point location, parametrized in the
354           spirit of C printf format, with 2 "%s" for coordinates (eg.
355           "&via=%s,%s")
356
357       url-start-dir (optional)
358           the part of the URL setting the starting point location for
359           direction based routing, parametrized in the spirit of C printf
360           format, with one "%s" for direction (eg. "&start=%s")
361
362       url-stop-dir (optional)
363           the part of the URL setting the end point location for direction
364           based routing, parametrized in the spirit of C printf format, with
365           one "%s" for direction (eg. "&start=%s")
366
367       url-ll-lat-first (optional)
368           The ordering of the lat/long terms in the Start, Stop and Via URL
369           settings. By default this is TRUE.
370
371           For instance using Brouter services, the URL uses a pair of values
372           which is longitude and then latitude. Thus setting this value to
373           FALSE ensures the value substitution is performed in the necessary
374           order.
375
376       referer (optional)
377           A URL to serve as referer for the HTTP request (eg.
378           "http://hostname/")
379
380       follow-location (optional)
381           the max depth of recursive redirections
382
383       Remote File Datasources. It is possible to add web references expected
384       to return a file which can then be opened directly or converted via
385       GPSBabel.  The file is ~/.viking/datasources.xml.  An example of the
386       file is in the source distribution doc/examples/datasources.xml.  The
387       VikWebtoolDatasource allows to declare any URL using logic based on
388       coordinates.  The related properties are:
389
390       label
391           the text displayed in the menu entry
392
393       url
394           the parametrized URL to open in the spirit of C printf format, with
395           up to 7 "%s" values. e.g.  http://hostname/getfile?lat=%s&lon=%s
396
397           The order and meaning of these parameters is given by the
398           url_format_code below
399
400       url_format_code
401           A string describing the parametrized URL substitution parameters,
402           each character represents how to translate each term.
403
404           B = Bottom of the current view i.e. minimum latitude
405
406           L = Left of the current view i.e. minimum longitude
407
408           T = Top of the current view i.e. maximum latitude
409
410           R = Right of the current view i.e. maximum longitude
411
412           A = center lAtitude of the current view
413
414           O = center lOngitude of the current view
415
416           Z = OSM Zoom value of the current view. See Zoom Levels[1]
417
418           S = A user specified input string requested from the user via a
419           dialog box
420
421           Thus for the url example above then the format code should be AO
422
423       file_type
424           This value is passed on for the -i parameter in interfacing with
425           GPSBabel.
426
427           If it is not defined then the returned file is interpreted
428           internally as a GPX file.
429
430           Possible values such as 'kml', 'mapsource' etc.. can be used. See
431           GPSBabel File Formats[3] for the full list.
432
433       babel_filter_args
434           This value is passed on for the filter arguments interfacing with
435           GPSBabel.
436
437           E.g. "-x nuketypes,routes" can be used to filter all routes from
438           the results.
439
440       input_label
441           This value is used when requesting input from the user.
442
443           It is the label of the text input box.
444

FILES

446       ~/.viking/maps.xml
447           File containing definition of map sources.
448
449           See previous section for details.
450
451       ~/.viking/goto_tools.xml
452           File containing definition of "Go-to" services.
453
454           See previous section for details.
455
456       ~/.viking/external_tools.xml
457           File containing definition of external tools.
458
459           See previous section for details.
460
461       ~/.viking/datasources.xml
462           File containing definition of remote file datasources.
463
464           See previous section for details.
465
466       ~/.viking/routing.xml
467           File containing definition of routing sources.
468
469           See previous section for details.
470
471       ~/.viking/viking.prefs
472           Preferences for viking.
473
474       ~/.viking/viking_layer_defaults.ini
475           Layer default values for viking.
476
477       ~/.viking/viking.ini
478           Values for viking automatically saved between sessions.
479
480           Not generally intended to be manually edited.
481
482           However some finer control of default internal values can be set.
483
484       ~/.viking/keys.rc
485           File containing short cut key accelerators.
486
487           This is in the standard GTK Accelerator map format.
488
489       ~/.viking-maps/
490           Default location of the map cache of tiles downloaded or created by
491           viking.
492
493       Extension files (maps.xml, goto_tools.xml, datasources.xml,
494       external_tools.xml, routing.xml) are also searched in /etc/viking and
495       /usr/share/viking directories (or related in your system).
496

ENVIRONMENT

498       XDG_DATA_HOME
499           Optional directory to look for extension files (maps.xml,
500           goto_tools.xml, datasources.xml, external_tools.xml, routing.xml).
501
502       XDG_DATA_DIRS
503           Path used to change the directories scanned for extension files
504           (maps.xml, goto_tools.xml, datasources.xml, external_tools.xml,
505           routing.xml).
506

AUTHOR

508       This manual page was originally written by Ralf Meyer
509       <ranfyy@gmail.com> for the Debian(TM) system (but may be used by
510       others). Permission is granted to copy, distribute and/or modify this
511       document under the terms of the GNU General Public License, Version 2
512       any later version published by the Free Software Foundation.
513
514       On Debian systems, the complete text of the GNU General Public License
515       can be found in /usr/share/common-licenses/GPL.
516
518       Copyright © 2007 Ralf Meyer
519       Copyright © 2010 Guilhem Bonnefille
520       Copyright © 2013 Rob Norris
521

NOTES

523        1. Zoom Levels
524           http://wiki.openstreetmap.org/wiki/Zoom_levels
525
526        2. ETag
527           http://en.wikipedia.org/wiki/HTTP_ETag
528
529        3. GPSBabel File Formats
530           http://www.gpsbabel.org/capabilities.html
531
532
533
534Viking                            2020-07-29                         VIKING(1)
Impressum