1VIKING(1) Viking 1.10 VIKING(1)
2
3
4
6 viking - program to manage GPS data
7
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
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+ 3 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
33 file
34 Specify file(s) to load at start.
35
36 If a filename is in the 'geo' URI sheme (RFC5870[1]) then the
37 positional information will be used (and it will not attempt to
38 load it as a file)
39
40 -
41 Read input from standard in.
42
43 -d, --debug
44 Enable debug output.
45
46 -V, --verbose
47 Enable verbose output.
48
49 -?, --help
50 Show help options.
51
52 -v, --version
53 Show version.
54
55 --latitude
56 Set the initial position to the specified latitude in decimal
57 degrees.
58
59 --longitude
60 Set the initial position to the specified longitude in decimal
61 degrees.
62
63 -z, --zoom
64 Set the initial zoom level. The value is the OSM zoom level (0 -
65 22).
66
67 -m, --map
68 Add a map layer by specifying the map id. The value needs to match
69 one of the internal ids or an id from the maps configuration
70 extension (see below). Specifying a value of 0 will use the map
71 layer default.
72
73 Internal Map Ids:
74
75 OSM Mapnik = 13
76
77 OSM Cycle = 17
78
79 OSM Transport = 20
80
81 OSM Humanitarian = 22
82
83 -e, --external
84 Load all specified GPX files in 'external' mode.
85
86 This is in contrast to importing the data and storing it in the
87 Viking file.
88
90 Currently, viking has some extension points based on configuration
91 files. The file format is heavily inspired by the GtkBuilder file
92 format: you specify the class of the GObject to build and set its
93 properties. Technically, it is a XML file containing a "objects" root
94 element. Inside this element, you set a collection of "object".
95
96 Here is an example:
97
98 <objects>
99 <object class="ClassName">
100 <property name="property_name1">Property value</property>
101 <property name="property_name2">Property value</property>
102 </object>
103 ...
104 <objects>
105
106
107 You can find more examples in the documentation part of the
108 distribution.
109
110 The User Configuration File Location directory is ~/.viking for
111 versions up to v1.8. For new installs from v1.9 onwards it is
112 ~/.config/viking If the legacy location exists then Viking will use
113 that in preference to the new location.
114
115 Map Source. It is possible to add new map sources. The file is maps.xml
116 in User Configuration File Location directory. An example of the file
117 in the distribution doc/examples/maps.xml. The VikSlippyMapSource
118 allows declaration of any map source working like OpenStreetMap. It
119 supports the following properties:
120
121 id
122 this is an integer and should be unique as it used to identify the
123 map source
124
125 name
126 a string (should be unique) that is used for the OSM style cache
127 directory name when the Map Cache directory is the default (up to
128 v1.8 ~/.viking-maps or v1.9 onwards~/.cache/viking)
129
130 label
131 the text displayed in the map's source selection dialog
132
133 hostname
134 the server's hostname (eg. "tile.openstreetmap.org")
135
136 url
137 the parametrized address of the tile, in the spirit of C printf
138 format, with 3 "%d" fields for Z, X and Y (in that order) (eg.
139 "/%d/%d/%d.png")
140
141 Note
142 The full parametrized address can just be put in the URL field
143 and the hostname field doesn't need specifying.
144
145 e.g. "https://tile.openstreetmap.org/%d/%d/%d.png"
146
147 custom-http-headers (optional)
148 Custom HTTP headers to be added to the download request. The
149 default is none.
150
151 Multiple headers can be specified by separating each part with an
152 '\n'.
153
154 The header allows of substition of values of the positional Z, X
155 and Y (in that order) values, as per the url option above. Using
156 multiple and/or different ordered values can be acheived via
157 printf() positional argument specifiers. For example:
158
159 DNT: 1\nLine2: %d %d %d\nReordered: %3$d %1$d %2$d
160
161 copyright (optional)
162 The copyright of the map source.
163
164 license (optional)
165 The license of the map source.
166
167 license-url (optional)
168 The URL of the license of the map source.
169
170 zoom-min (optional)
171 The minimum zoom value supported by the tile server. The Default is
172 0 if not specified.
173
174 zoom-max (optional)
175 The maximum zoom value supported by the tile server. The Default is
176 18 if not specified.
177
178 See Zoom Levels[2]
179
180 lat-min (optional)
181 The minimum latitude value in degrees supported by the tile server.
182 The Default is -90 degrees if not specified.
183
184 lat-max (optional)
185 The maximum latitude value in degrees supported by the tile server.
186 The Default is 90 degrees if not specified.
187
188 lon-min (optional)
189 The minimum longitude value in degrees supported by the tile
190 server. The Default is -180 degrees if not specified.
191
192 lon-max (optional)
193 The maximum longitude value in degrees supported by the tile
194 server. The Default is 180 degrees if not specified.
195
196 file-extension (optional)
197 The file extension of the files on disk. The default is .png
198
199 If the tile source URL ends in something other than .png, then this
200 parameter will need to match it.
201
202 This can also be useful in reading a tileset from other software
203 which may name tiles in an alternative form, e.g. for Mobile Atlas
204 creator it names them .png.tile
205
206 Note
207 The file types actually usable are those supported by GDK
208 Pixbuf Library, which includes at least PNG and JPEG.
209
210 Note
211 Remember to include the beginning '.' when specifying this
212 parameter.
213
214 offset-x (optional)
215 The offset of the map in the x plane (towards east) in metres. The
216 default is 0.0 if not specified.
217
218 Use negative numbers to adjust in a westerly direction.
219
220 Typical usage would be aligning differing maps, e.g. aerial imagery
221 may be offset from cadastral maps.
222
223 Currently this is a single value that applies to all zoom levels.
224
225 offset-y (optional)
226 The offset of the map in the y plane (towards north) in metres. The
227 default is 0.0 if not specified.
228
229 Use negative numbers to adjust in a southerly direction.
230
231 switch-xy (optional)
232 Swap the X,Y values around in the URL parametrized ordering.
233
234 The default is false.
235
236 check-file-server-time (optional)
237 Sends the timestamp of the tile to the server, so the server can
238 decide whether it should send a new tile or not.
239
240 The default is false.
241
242 use-etag (optional)
243 Use and compare the ETag[3] value in determining whether to
244 download a newer tile. The default is false.
245
246 The ETag value is stored in a separate file in the same directory
247 as the tile to enable checking the value across multiple runs of
248 the program.
249
250 referer (optional)
251 A URL to serve as referer for the HTTP request (eg.
252 "http://hostname/")
253
254 follow-location (optional)
255 The maximum number of redirects allowed. The default is 0, i.e. no
256 redirection. Use -1 for an unlimited number of redirects.
257
258 tilesize-x (optional)
259 The tile x size. The default is 256 pixels if not specified.
260
261 tilesize-y (optional)
262 The tile y size. The default is 256 pixels if not specified.
263
264 scale (optional)
265 The tile scale. The scale is 1 if not specified.
266
267 Note
268 Use a value of 2 to represent high res tiles. Don't change the
269 tilesize as the internal display size is still based on 256
270 pixels.
271
272 The VikTmsMapSource allows declaration of any TMS service. A TMS (Tile
273 Map Service) is defined in OSGeo wiki[4]. The configuration supports
274 the following properties (as per VikSlippyMapSource above):
275 id
276 label
277 hostname
278 url
279 custom-http-headers (optional)
280 copyright (optional)
281 license (optional)
282 license-url (optional)
283 check-file-server-time (optional)
284 follow-location (optional)
285 referer (optional)
286 zoom-min (optional)
287 zoom-max (optional)
288 lat-min (optional)
289 lat-max (optional)
290 lon-min (optional)
291 lon-max (optional)
292 file-extension (optional)
293 scale (optional)
294 tilesize-x (optional)
295 tilesize-y (optional)
296 offset-x (optional)
297 offset-y (optional)
298
299 The VikWmscMapSource allows declaration of any WMS or WMS-C service. A
300 WMS (Web Map Service) is defined in WMS Tile Caching[5]. The
301 configuration supports the following properties (as per
302 VikSlippyMapSource above):
303 id
304 label
305 hostname
306 url
307 custom-http-headers (optional)
308 copyright (optional)
309 license (optional)
310 license-url (optional)
311 check-file-server-time (optional)
312 follow-location (optional)
313 referer (optional)
314 zoom-min (optional)
315 zoom-max (optional)
316 lat-min (optional)
317 lat-max (optional)
318 lon-min (optional)
319 lon-max (optional)
320 file-extension (optional)
321 scale (optional)
322 tilesize-x (optional)
323 tilesize-y (optional)
324 offset-x (optional)
325 offset-y (optional)
326
327 Go-to search engines. It is possible to add new new search engines for
328 the "Go-To" feature. The file is goto_tools.xml in User Configuration
329 File Location directory. An example of the file in the distribution
330 doc/examples/goto_tools.xml. Currently, there is a single object class
331 available: VikGotoXmlTool. This feature allows one to declare any
332 search engine using a XML format as result. The related properties
333 are:
334
335 label
336 the text displayed in the Go-To dialog
337
338 url-format
339 the parametrized address of the query, in the spirit of C printf
340 format, with a single "%s" field (replaced by the query string)
341
342 lat-path
343 XML path of the latitude (eg. /root/parent/elem)
344
345 lat-attr (optional)
346 name of the attribute (of previous element) containing the latitude
347
348 lon-path
349 XML path of the longitude (eg. /root/parent/elem)
350
351 lon-attr (optional)
352 name of the attribute (of previous element) containing the longiude
353 As a facility (or readability) it is possible to set both path and
354 attribute name in a single property, like an XPath expression. To do
355 so, simply set both info in lat-path (or lon-path) in the following
356 format: /root/parent/elem@attribute.
357
358 External tools. It is possible to add new external tools. The file is
359 external_tools.xml in User Configuration File Location directory. An
360 example of the file in the distribution
361 doc/examples/external_tools.xml. The VikWebtoolCenter allows one to
362 declare any Webtool using a logic based on center coordinates and zoom
363 level value. The related properties are:
364
365 label
366 the text displayed in the menu entry
367
368 url
369 the parametrized URL to open, in the spirit of C printf format,
370 with 2 "%s" and a "%d" fields for X, Y and Z (zoom level) (eg.
371 "http://hostname/?lat=%s&lon=%s&zoom=%d")
372 The VikWebtoolBounds allows one to declare any Webtool using a logic
373 based on bounds coordinates. The related properties are:
374
375 label
376 the text displayed in the menu entry
377
378 url
379 the parametrized address of the tile, in the spirit of C printf
380 format, with 4 "%s" fields for left, right, bottom and top (eg.
381 "http://hostname:8111/load_and_zoom?left=%s&right=%s&bottom=%s&top=%s")
382
383 Routing engine. It is possible to declare new routing engines. The file
384 is routing.xml in User Configuration File Location directory. An
385 example of the file in the distribution doc/examples/routing.xml. The
386 VikRoutingWebEngine allows one to declare a routing engine available
387 via HTTP. The related properties are:
388
389 id
390 a string, should be unique as it used to identify the routing
391 engine
392
393 label
394 the text displayed in the menu entry
395
396 format
397 The GPSBabel format code to interpret the service response. By
398 default a GPX response is expected and processed internally.
399 However if the service returns different format then GPSBabel is
400 used to transform the text into something that Viking can
401 understand. Only formats that GPSBabel supports can be used: e.g.
402 'gpx', 'kml', 'gtrnctr' (for Garmin Training Center .tcx files),
403 etc...
404
405 Use gpsbabel --help on the command line to find out the supported
406 file types and their codes to process them.
407
408 url-base
409 the base URL of the web service (eg. "http://hostname/service?")
410
411 url-start-ll
412 the part of the URL setting the starting point location,
413 parametrized in the spirit of C printf format, with 2 "%s" for
414 coordinates (eg. "&start=%s,%s")
415
416 url-stop-ll
417 the part of the URL setting the end point location, parametrized in
418 the spirit of C printf format, with 2 "%s" for coordinates (eg.
419 "&stop=%s,%s")
420
421 url-via-ll (optional)
422 the part of the URL setting via point location, parametrized in the
423 spirit of C printf format, with 2 "%s" for coordinates (eg.
424 "&via=%s,%s")
425
426 url-start-dir (optional)
427 the part of the URL setting the starting point location for
428 direction based routing, parametrized in the spirit of C printf
429 format, with one "%s" for direction (eg. "&start=%s")
430
431 url-stop-dir (optional)
432 the part of the URL setting the end point location for direction
433 based routing, parametrized in the spirit of C printf format, with
434 one "%s" for direction (eg. "&start=%s")
435
436 url-ll-lat-first (optional)
437 The ordering of the lat/long terms in the Start, Stop and Via URL
438 settings. By default this is TRUE.
439
440 For instance using Brouter services, the URL uses a pair of values
441 which is longitude and then latitude. Thus setting this value to
442 FALSE ensures the value substitution is performed in the necessary
443 order.
444
445 referer (optional)
446 A URL to serve as referer for the HTTP request (eg.
447 "http://hostname/")
448
449 follow-location (optional)
450 The maximum number of redirects allowed. The default is 0, i.e. no
451 redirection. Use -1 for an unlimited number of redirects.
452
453 Remote File Datasources. It is possible to add web references expected
454 to return a file which can then be opened directly or converted via
455 GPSBabel. The file is datasources.xml in your User Configuration File
456 Location directory. An example of the file is in the source
457 distribution doc/examples/datasources.xml. The VikWebtoolDatasource
458 allows one to declare any URL using logic based on coordinates. The
459 related properties are:
460
461 label
462 the text displayed in the menu entry
463
464 url
465 the parametrized URL to open in the spirit of C printf format, with
466 up to 7 "%s" values. e.g. http://hostname/getfile?lat=%s&lon=%s
467
468 The order and meaning of these parameters is given by the
469 url_format_code below
470
471 url_format_code
472 A string describing the parametrized URL substitution parameters,
473 each character represents how to translate each term.
474
475 B = Bottom of the current view i.e. minimum latitude
476
477 L = Left of the current view i.e. minimum longitude
478
479 T = Top of the current view i.e. maximum latitude
480
481 R = Right of the current view i.e. maximum longitude
482
483 A = center lAtitude of the current view
484
485 O = center lOngitude of the current view
486
487 Z = OSM Zoom value of the current view. See Zoom Levels[2]
488
489 S = A user specified input string requested from the user via a
490 dialog box
491
492 Thus for the url example above then the format code should be AO
493
494 file_type
495 This value is passed on for the -i parameter in interfacing with
496 GPSBabel.
497
498 If it is not defined then the returned file is interpreted
499 internally as a GPX file.
500
501 Possible values such as 'kml', 'mapsource' etc.. can be used. See
502 GPSBabel File Formats[6] for the full list.
503
504 babel_filter_args
505 This value is passed on for the filter arguments interfacing with
506 GPSBabel.
507
508 E.g. "-x nuketypes,routes" can be used to filter all routes from
509 the results.
510
511 input_label
512 This value is used when requesting input from the user.
513
514 It is the label of the text input box.
515
517 The User Configuration File Location directory is ~/.viking for
518 versions up to v1.8. For new installs it is ~/.config/viking from v1.9
519 onwards. If the legacy location exists then Viking will use that in
520 preference to the new location.
521
522 Configuration: maps.xml
523 File containing definition of map sources.
524
525 See previous section for details.
526
527 Configuration: goto_tools.xml
528 File containing definition of "Go-to" services.
529
530 See previous section for details.
531
532 Configuration: external_tools.xml
533 File containing definition of external tools.
534
535 See previous section for details.
536
537 Configuration: datasources.xml
538 File containing definition of remote file datasources.
539
540 See previous section for details.
541
542 Configuration: routing.xml
543 File containing definition of routing sources.
544
545 See previous section for details.
546
547 Configuration: viking.prefs
548 Preferences for viking.
549
550 Configuration: viking_layer_defaults.ini
551 Layer default values for viking.
552
553 Configuration: viking.ini
554 Values for viking automatically saved between sessions.
555
556 Not generally intended to be manually edited.
557
558 However some finer control of default internal values can be set.
559
560 Configuration: keys.rc
561 File containing short cut key accelerators.
562
563 This is in the standard GTK Accelerator map format.
564
565 Up to v1.8 ~/.viking-maps/, v1.9 onwards ~/.cache/viking/
566 Default location of the map cache of tiles downloaded or created by
567 viking.
568
569 If the legacy location exists then Viking will use that in
570 preference.
571
572 Extension files (maps.xml, goto_tools.xml, datasources.xml,
573 external_tools.xml, routing.xml) are also searched in /etc/viking and
574 /usr/share/viking directories (or related in your system).
575
577 XDG_DATA_HOME
578 Optional directory to look for extension files (maps.xml,
579 goto_tools.xml, datasources.xml, external_tools.xml, routing.xml).
580
581 XDG_DATA_DIRS
582 Path used to change the directories scanned for extension files
583 (maps.xml, goto_tools.xml, datasources.xml, external_tools.xml,
584 routing.xml).
585
586 VIKING_MAPS
587 The path used for the default root location of maps.
588
590 This manual page was originally written by Ralf Meyer
591 <ranfyy@gmail.com> for the Debian(TM) system (but may be used by
592 others). Permission is granted to copy, distribute and/or modify this
593 document under the terms of the GNU General Public License, Version 2
594 any later version published by the Free Software Foundation.
595
596 On Debian systems, the complete text of the GNU General Public License
597 can be found in /usr/share/common-licenses/GPL.
598
600 Copyright © 2007 Ralf Meyer
601 Copyright © 2010 Guilhem Bonnefille
602 Copyright © 2021 Rob Norris
603
605 1. RFC5870
606 https://tools.ietf.org/html/rfc5870
607
608 2. Zoom Levels
609 http://wiki.openstreetmap.org/wiki/Zoom_levels
610
611 3. ETag
612 http://en.wikipedia.org/wiki/HTTP_ETag
613
614 4. OSGeo wiki
615 https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification
616
617 5. WMS Tile Caching
618 https://wiki.osgeo.org/wiki/WMS_Tile_Caching
619
620 6. GPSBabel File Formats
621 http://www.gpsbabel.org/capabilities.html
622
623
624
625Viking 2023-07-22 VIKING(1)