# &app; Manual

&app; is a free/open source program to manage GPS data.

2013
Guilhem Bonnefille
Rob Norris
GNOME Documentation Project
Guilhem
Bonnefille
Rob
Norris
username:
Alexxy
username:
Vikingis
username:
Tallguy
username:
EliotB
Alex
Foobarian
&appname; Manual V&manrevision;
&date;

Guilhem Bonnefille guilhem.bonnefille@gmail.com

Rob Norris rw_norris@hotmail.com

GNOME Documentation Project

This document was generated on .

This manual describes version &appversion; of &appname;.

## Feedback

To report a bug or make a suggestion regarding the &app; application or this manual, follow the directions in the Feedback section of the GNOME User Guide.

## Introduction

&appname; aims to be easy to use, yet powerful in accomplishing a wide variety of tasks. Some of the things you can use &appname; for are:

- Uploading and downloading waypoints, tracks and routes to/from GPS.

- Preparing tracks, routes and waypoints for trips using maps from services such as OpenStreetMap (OSM) and/or Terrasever. The data is only needed to be uploaded to your GPS before you leave. The maps together with your tracks, routes and waypoints can also be printed and used during the trip.

- After trips, tracks and waypoints from GPS can be downloaded, stored, managed and reused in your (or your friends') later trips.

- Analyzing Off Highway Vehicle (OHV) and hiking trips, understanding where you went and how far you were from something.

- Making waypoints, tracks and routes to follow to easily get someplace you've never been before or don't have GPS data for but online maps exist for it.

- Making maps with coordinate lines.

- Grouping data from multiple trips using a hierarchical data manager.

- Analyzing speed at different places (to some degree), adding waypoints where you forgot to mark one but did slow down or stop.

- Downloading and storing OpenStreetMap and/or Terraserver maps on your hard drive and looking at them later.

- Editing routes or tracks and their trackpoints, joining and splitting up tracks and routes.

- Show the live GPS position on the map (for use on a mobile device - e.g. a laptop). Not Windows at the moment.

- Import track, route and waypoint files of various types via GPSBabel

- View, create and update Geotagged Images (using EXIF data).

&appname; is under continual improvement: see the potential areas in the Roadmap / Wishlist:

### Screenshot: OSM Cycle Map and Many Tracks

## General Concepts

### Layers

Layers is concept one may know from powerful graphics editors such as Photoshop or GIMP. Instead of putting all the data on the same level, it is stacked (i.e. layered) with different data over one another. This can be useful for analysis and general handling of various sets of data.

Unfortunately the downside of this complexity is remembering how differing layers of data can obscure other data.

The Map layers have Alpha Compositing, to create the appearance of partial transparency. By controlling this value one can see data below it in the layer heirarchy for interesting effects.

### Layers Panel

The panel on the left is called the layers panel. It determines which layers and sublayers (such as tracks and waypoints) are shown, and the order in which they are drawn. Layers on the top of the layers panel list are drawn last. You can change the order by drag and drop, or by selecting a layer and using the up and down buttons at the bottom of the layers panel.

### Viewport

The main &appname; area where the layer data is drawn, is called the viewport.

### Statusbar

This provides a readout of various information:

- The currently selected (mouse pointer) tool

- The number of items to process in the background - normally this the number in the map tile download queue

- The zoom factor

- The location of the mouse pointer (and potentially height information if DEM data is available)

When creating a track/route, the statusbar also displays some information about the track/route.

#### Statusbar

This part of the statusbar displays:

- The total distance of the track/route (including currently edited segment).

- The bearing of the currently edited segment.

- The distance of the currently edited segment.

For convenience, a zoom selector can be opened from the status bar. Simply left-click on the zoom factor.

#### The zoom selector available from status bar

### Projections

&appname; supports differents projections:

- UTM

- LatLon (also called EPSG:4326)

- Mercator (also called Spherical Mercator)

### Map Cache

&appname; stores downloaded map tiles to disk for a couple of reasons:

- Enables off line usage

- Reduces loading on the map tile provider

The &appname; automatic caching strategy is two fold:

- If the age of the tile on disk is less than the specified tile age (see ), it will not attempt to contact the server to get a new version of the tile.

- When the tile age has expired &appname; will attempt a refresh update, so that it provides the cached tile generation timestamp so the server can determine if a new tile image needs to be returned. Not all map types support this refresh method.

You can override the caching scheme by using right-click on the Map on the layers panel and selecting Redownload All Onscreen Maps, or Ctrl+F5 for the top most map displayed. This will get the latest version held by the server.

This can be useful if you contribute to OpenStreetMap and wish to see your modifications (of course give time for the server to have processed your changes - see I have made edits but they don't show up on the map)

### Shortcut Keys

&appname; has several shortcut keys or key combinations for commands as listed in the main window along side the command.

Some function keys follow standard GUI behaviour:

- F1 Help (view this manual)

- F5 or Ctrl+R Refresh the maps on screen

- F10 Select the Menubar (in built behaviour)

- F11 Full Screen

- Ctrl+F5 or Ctrl+Shift+R Redownload the maps on screen

Refresh attempts to get new maps only if the local tile cache time period has expired for any particular map tile. Redownload gets all on screen maps from the server, ignoring the local tile cache.

Other function keys control turn on/off visibility of various elements:

- F3 Toggle visibility of the Toolbar

- F4 Toggle visibility of the Menubar

- Shift+F5 Toggle visibility of the Scale indicator on the viewport

- F6 Toggle visibility of the Center Crosshairs on the viewport

- F7 Toggle showing selected items (e.g. tracks or waypoints) in the highlight colour in the viewport

- F9 Toggle visibility of the Layers Panel

- F12 Toggle visibility of the Statusbar

Standard shortcuts are provided for normal GUI operations: such as creating new files, opening, saving and exitting. Then there are shortcuts specific to &appname; to switch projection modes, zoom in/out, create layers and switch the active tool mode. For these combinations see the menu entry themselves.

### Tracks vs Routes

In theory a route is path you are planning to follow and a track of where you have actually been. The GPX specification splits these into two separate catergories, although tracks contain everything route may have.

Q. When planning a route what difference does it make if it's a route or a track?

A. One difference is in how a GPS device navigates following the route or track. Or you may want to consider interoperability with other software. Otherwise it is probably best to use tracks as they are a superset of the route functionality.

For example on Garmin Etrex:

- Route following: Uses navigation mode with compass and estimated time to next point.

  If following on road it can calculate a route on fly.

  I (RN) always use this mode to follow pre planned routes.

- Track following: Uses a TracBack mode

  I (RN) never use this so I can't comment on how it actually compares to the route mode.

There are often restrictions on the numbers of route points the GPS Device can handle - may be 250 or as little as 50. This generally not a problem for single day routes, but needs managing for multi-day events or for highly detailed routes.

## File Types and the Main Window

&appname; has it's own file type traditionally marked by the .vik file extension. This is a plain text file saving all information of the current window including the view location, zoom level, projection type and then all the layer information (aggregrates, maps, tracks, waypoints, etc...).

Besides it's own file type, &appname; can open (and save to via export methods) GPX and KML file types.

&appname; does not handle GPX 1.1 particularly well - it prefers GPX 1.0

By default &appname; opens a default blank window centered on the home location. This behaviour can be changed by the . Each window contains menus, a toolbar, a viewport, layers panel and a statusbar. Each section (apart from the viewport) can be hidden using the or from the View Show choices.

One may consider each &appname; window to be a separate project - each with it's project Viking file. However generally one window is enough for most purposes!

Several operations apply at the window level as follows next. Also see for the operational modes that generally work in conjunction with a selected layer.

### New

Located on the File New menu and on the toolbar New.

This creates a new window with the default settings.

### Open

Located on the File Open menu and on the toolbar Open.

This opens a file chooser dialog to select one (or more) files of the supported GPS data file types:

- Viking

- GPX

- KML

GPX and KML files will be loaded into the existing &appname; view. A Viking file will be given a new window if the current window is already assigned.

&appname; handles more file types via the Acquire methods below.

### Save

Located on the File Save menu and on the toolbar Save.

If the current opened file is Viking file, this save will simply update it. If it is a new file or the file loaded was an external type (i.e. GPX or KML), then this will ask for a new name to save as a Viking file.

### Save As

Located on the File Save As menu only.

This will ask for a new name to save as a Viking file (even it was already a Viking file).

### Append

Located on the File Append menu only.

Selecting a Viking file from this method will join the file contents to the current window (instead of creating a new one). GPX and KML files may also be appended, but this is exactly the same as the normal file open method.

### Acquire

Available on the File Acquire menu and from the layer menu.

If used from the File menu and a TrackWaypoint layer is not currently selected, these methods place the results in a new TrackWaypoint layer. When a TrackWaypoint layer is selected, then using the File Acquire will put the results into the selected TrackWaypoint layer.

If used from the layer menu these methods place the results in that TrackWaypoint layer.

#### From GPS

File Acquire From GPS Probably the easiest way of getting information from a GPS Device.

Select the GPS Device communication settings and then hit OK. See the Getting Started section for more info about the settings.

Some GPS devices (such as the Garmin Nuvi 255) support a native file system and write information to a `Current.gpx` file or similar. You will have to browse the file system on the device and open it directly.

#### Import File With GPSBabel

File Acquire Import File With GPSBabel

Other formats can be imported that are supported by GPSBabel.

You need to select the file and the type of the file that is going to be opened, since there is no automatic detection of the file kind.

#### OSM Traces

File Acquire OSM Traces

See section for more information.

#### My OSM Traces

File Acquire My OSM Traces

See section for more information.

#### From Geotagged Images

File Acquire From Geotagged Images Enables automatic creation of waypoints from geotagged images.

This menu opens a dialog to select such image files. If the image files have geotag information in them, then a layer with named waypoints positioned at the location of each image with a thumbnail of that image is created.

#### From Wikipedia Waypoints

File Acquire From Wikipedia Waypoints

This gets interesting points from Wikipedia for the specified view: either within the extent of layer bounds or within the current viewport boundary.

#### From Routing

File Acquire From Directions

This gets a route from given directions.

#### From URL

File Acquire From URL

This gets a file from the entered URL. File formats that can be opened are those supported by GPSBabel.

You need to select the type of the file that is going to be returned, since there is no automatic detection of the file kind.

### Print

Located on the File Print menu and on the toolbar Print.

Print uses what is displayed on the current map view for printing: i.e. what ever map, tracks and waypoints that are in view, including the cross hairs and the scale.

It uses a standard system print dialog using an image the size of the current viewport in pixel terms. On the Image Settings you can move the image around the page and scale the image up / or down.

### Generate Image File

Located on the File Generate Image File menu only.

Allows generation of larger (pixel) area images than the standard Print method above. From the generated image you can use the facilities of the Operating System to print the image or perform other actions.

You should have previously downloaded the tile images for the chosen zoom level, otherwise the image produced will have missing sections.

Using large areas takes some time to process and due to the method used it may run out of memory to complete the operation. Unfortunately under Windows systems it can not detect this failure and may crash the program. So the maximum size is dependent on the capabilities of your system. For instance the largest successful image generated on my (RN) Debian system is a pixel area of 20,000 x 20,000.

### Generate Directory of Images

Located on the File Generate Directory of Images menu only.

This is only available in UTM mode.

## Layers

Layers supported by &appname; are:

For each layer there are a few standard options:

- Properties - Layer setup / configuration settings

- Cut

- Copy

- Paste

- Delete

- Visibility - This checkbox on the Layers Panel controls whether the layer is shown in the viewport or not

The cut/copy/paste options can be accessed in a variety of ways once the layer has been selected:

- Standard keys: Ctrl+x|c|v

- Main menu Edit

- From the right click menu

- Buttons at the bottom of the Layers Panel

Default values used for each layer's properties can be altered via the Edit Layer Defaults menu options.

See the individual section for detail about each layer.

## TrackWaypoint Layer

TrackWaypoint layers display GPS data (tracks, routes and waypoints).

One way to create new waypoints is to copy a latitude/longitude coordinate pair, such as the one shown on most geocaches, and paste it into an active TrackWaypoint layer. &appname; can automatically recognize several variations of the lat/lon format.

By right-clicking on tracks, routes or waypoints in the , you can access many commands on them. You can easily find a specific track, route or waypoint by expanding the appropriate containing Tracks, Routes or Waypoints sublayer in the layers panel to show all the individual items and then typing the name of the track, route or waypoint.

The containing Tracks, Routes or Waypoints sublayers are only shown when items of that type exist. To start creating them enter into a create mode via either the Create toolbar commands or the New menu commands.

The sublayers also offer right click menu options. These are the same as those available at the TrackWaypoint level, but only those that relate to the sublayer type.

By default routes are coloured red. Tracks are automatically assigned a spread of colours.

Most operations available on tracks are available on routes, except for functionality that relies on having timestamps - since routes by definition have no timing information. Thus for example, uploading a route to OpenStreetMap Traces is not available nor is Geotagging on a route. It is possible to convert between Tracks and Routes, although converting from a Track to a Route may involve a loss of information (hence you are required to confirm this operation before it happens).

### Layer Operations

The layer has a context menu with several operations.

#### View Layer

Version1.1+: This will automatically move the viewport and select the best zoom level to see the whole layer (i.e. all tracks, routes and waypoints).

#### View

##### View All Tracks

Version1.1+: This will automatically move the viewport and select the best zoom level to see the all the tracks in the layer (ignoring positions of any routes or waypoints).

##### View All Routes

Version1.4+: This will automatically move the viewport and select the best zoom level to see the all the routes in the layer (ignoring positions of any tracks or waypoints).

##### View All Waypoints

Version1.1+: This will automatically move the viewport and select the best zoom level to see the all the waypoints in the layer (ignoring positions of any tracks or routes).

#### Goto Center of Layer

This will automatically move the viewport to see the whole layer (i.e. tracks, routes and waypoints). It does not adjust the zoom level.

#### Goto Waypoint

This opens a dialog box to enter a name of waypoint to search for. If it is found the viewport is centred on it.

Note this search is not very clever and only finds exact matches. You are probably better off expanding the waypoint list and directly start typing, as mentioned above, which finds a match based on each letter typed.

#### Export Layer

The layer (all tracks, routes and waypoints) can be exported to a file GPX, GPSPoint, GPSMapper or Google's KML format.

Version1.1+: An individual track can be exported to a GPX file via the track menu.

#### Finish Track or Route

Selecting this option ends the creation of that individual track or route.

This is only available when a track or route is being created by the or tools.

#### New

##### New Waypoint

This opens a dialog box to create a new waypoint. A default name will be suggested and the default position is the center of the viewport.

##### New Track

This turns on the tool.

##### New Route

This turns on the tool.

#### Geotag Images

This starts the Geotagging Images dialog against all tracks in the layer. See Geotagging for further detail.

#### Acquire

This offers the same choice from methods as on the File menu. However when invoked from here, the results will be stored in this layer (instead of creating a new one).

#### Upload

##### Upload to GPS

This opens a dialog to select the GPS Device and port to which the layer information will be transferred.

The types of GPS information (tracks, routes or waypoints) to be transferred can be selected.

Tracks, Routes or Waypoints that are invisible will not be transferred.

##### Upload To OSM

This opens a dialog to upload all tracks and waypoints to OpenStreetMap traces. Useful if you are an OpenStreetMap contributor (you will need an OpenStreetMap account), these details can be stored in &appname;

&appname; allows you to edit a track, e.g. remove duplicate points, perhaps remove track points leading to your home and then upload it to OpenStreetMap.

The password is transferred unencrypted in every request sent to the OpenStreetMap server. This is due to the use of OpenStreetMap's basic authentication method.

Currently &appname; does not support the OAuth mechanism.

#### Delete

Offers deletion of various parts of a TrackWaypoint layer:

##### Delete All Tracks

Deletes all the tracks in this layer.

##### Delete Tracks from Selection

Opens a dialog with list of all the tracks from this layer to choose the ones to delete.

##### Delete All Routes

Deletes all the routes in this layer.

##### Delete Routes from Selection

Opens a dialog with list of all the routes from this layer to choose the ones to delete.

##### Delete All Waypoints

Deletes all the waypoints in this layer.

##### Delete Waypoints from Selection

Opens a dialog with list of all the waypoints from this layer to choose the ones to delete.

#### Filter

##### Simplify All Tracks

This opens dialog to request the number of points each track will be simplified using GPSBabel. The result is put into a new layer. The simplification method removes points considered to be in a 'near straight line', thus reducing the number of points and attempting to keep the most important turning points.

##### Remove Duplicate Waypoints

Remove Duplicate Waypoints - fairly self explainatory, with the results created in a new layer.

However it only considers a precise position (waypoints only 1 metre away from each other are considered different) and also doesn't consider if the waypoints have different comments, symbols or images.

#### Filter With Trackname

This runs GPSBabel on the layer using information from a previously selected track (select via the track menu "Use With Filter" option) with the following command types:

- Waypoints Inside This

- Waypoints Outside This

The result is generated in a new Track/Waypoint layer.

#### Geotag Images

This starts the Geotagging Images dialog using the specific track. See Geotagging for further detail.

#### List Tracks or Routes

Opens a new dialog with the list. As described in the Aggregrate layer

#### List Waypoints

Opens a new dialog with the list. As described in the Aggregrate layer

### Track and Route Sublayer Options

Repeats options available at the TrackWaypoint level, but only those for tracks and routes:

- Finish Track or Route. Same as the layer Finish Track or Route

- New Track or Route. Same as the layer New Track or New Route

- View All Tracks or Routes. Same as the layer View All Tracks or View All Routes

- Delete All Tracks or Routes. Same as the layer Delete All Tracks or Delete All Routes

- Delete Tracks or Routes from Selection. Same as the layer Delete Tracks from Selection or Delete Routes from Selection

- List Tracks or Routes. Opens a new dialog with the list. As described in the Aggregrate layer

Also gives other options for handling multiple items:

- Sort. Gives the ability to sort the items in the treeview alphabetically

- Visibility. Offers options to quickly control the visibility of all items within the sublayer, as per

### Track and Route Properties

This shows several tabs for properties and useful statistics about a track or a route, including elevation-distance and speed-time graphs (if data is available). Moving the mouse pointer over the graph displays values related to that point along the track. You can click on these graphs to jump to the point in the track. You can reverse it, delete duplicates, split at marked position or split a track from its component segments (discontinuous breaks in a track) into separate tracks.

#### Track and Route Properties Tab

##### Properties Tab: Example

#### Track and Route Statistics Tab

##### Statistics Tab: Example

#### Track Elevation Graph

##### Elevation Distance Tab: Example

The following colors are used in the elevation-distance graph:

Main colour - this is dependent on your Desktop theme - often blue by default

  elevation data in graph

Yellow

  no elevation data

Green

  elevation data from DEM

Red

  speed

### Track and Route Operations

#### Finish Track

Selecting this option ends the creation of the individual track.

This is only available when a track is being created by the tool.

#### Goto

This centers the viewport on the selected position on the track:

- Startpoint

- "Center" - the notional center from the bounds of the track

- Endpoint

- Version1.1+: Highest Altitude

- Version1.1+: Lowest Altitude

- Version1.1+: Maximum Speed (Not Available on Routes)

#### View

Version1.1+: This centers the viewport on the track and selects the best zoom level to see it.

#### Combine

##### Merge By Time

This operation repeatedly tries to merge the right-clicked track with tracks in the same TrackWaypoint layer. The tracks which are merged are those which have at least one trackpoint less than some threshold time away. This way, if you somehow end up with lots of small segments (say, caused by turning the GPS on and off) you can merge them easily into one track.

This is not available on routes as they have no timestamps.

##### Merge With Other Tracks

This opens a dialog listing the other tracks in the same TrackWaypoint layer, from which one can select the other tracks to merge with.

##### Merge Segments

Combines track segments. Effectively removing track segment markers to leave one segment for the whole track.

##### Append Track or Route

Enable joining of a single track to the end of the current track. This opens a dialog listing the other tracks in the same TrackWaypoint layer from which one can make the selection.

#### Split

##### Split By Time

This operation will split a single track into segments wherever the time interval between successive trackpoints is larger than some threshold. This is useful when processing raw NMEA GPS data, especially taken over a long time.

This is not available on routes as they have no timestamps.

##### Split By Number of Points

Version1.2+: This operation will split a single track into segments by the number of points specified. This can be useful with devices which may have limits on the number of points it supports.

##### Split Segments

Splits track segments into new tracks.

This is not available on routes as they do not have route segments.

##### Split at Trackpoint

Splits the track at the currently selected trackpoint.

The current track will finish at this trackpoint. A new track will start from a copy of this trackpoint.

This is only enabled when a trackpoint is selected.

#### Insert Points

These options are only enabled when a trackpoint is selected.

##### Insert Point Before Selected Point

Inserts a track point halfway between the previous track point and the current track point. All track point properties are interpolated between the two points.

##### Insert Point After Selected Point

Inserts a track point halfway between the current track point and the next track point. All track point properties are interpolated between the two points.

#### Delete Points

##### Delete Selected Point

Deletes the currently selected track point.

This is only enabled when a trackpoint is selected.

##### Delete Points With the Same Position

Deletes subsequent points that have the same position (but have different timestamps).

##### Delete Points With the Same Time

Deletes subsequent points that have the same time stamp (but may have different positions).

This is not available on routes as they have no timestamps.

#### Transform

These options alter the data of trackpoints of a track but not add or remove trackpoints. And don't seem to fit any other category :)

##### Apply DEM data

If any DEM data is loaded, this will apply the DEM data to give the track elevation data. Two ways of applying DEM data are offered:

1. Keep. Retains the existing elevation data of trackpoints and only those missing an elevation value are set.

2. Overwrite. Elevation data are set on all trackpoints even if they already elevation values.

##### Smooth Missing Elevation data

In various locations across the world, there are missing DEM values (AKA DEM Holes) from the SRTM data. This is particularly noticeable in mountainous areas. Two ways of applying elevation data to trackpoints that do not have elevation values are offered:

1. Interpolated. Missing elevation data is interpolated between the previous and next known values.

2. Flat. Elevation data is filled in from the last previously known value.

##### Convert to Track or Route

If this is a Route then it will convert it to a Track.

If this is Track then convert it to a Route.

Converting from a Track to a Route may involve a loss of information, in particular timestamp values (hence you are required to confirm this operation before it happens).

##### Anonymize Times

Timestamp information of a track can be shifted to be all offset from 1901-01-01.

Thus the timestamps themselves will no longer reveal exactly when a track was taken. However the relative difference between the timestamps is kept thus one is still able to calculate some properties such as speeds along the track.

This is not available for routes, as they have no timestamps.

#### Export Track as GPX

Version1.1+: This allows exporting the track as a GPX file by opening a file save dialog.

#### Extend Track End

Changes the current tool to add trackpoints to the end of the track.

#### Extend Using Route Finder

Enables the Route Finder tool. Thus on a subsequent left click in the viewport, a route is calculated from the end of track to that point using the default route service and applied to the track.

#### Upload

##### Upload to GPS

Same as the layer Upload to GPS command, but only applies to the track.

##### Upload to OSM

Same as the layer Upload to OSM command, but only applies to the track.

#### Use With Filter

This selects the track to be used in the Filter With Trackname feature.

This is not available on routes.

#### Edit Trackpoint

This opens the Trackpoint edit dialog. See .

This is only enabled when a trackpoint is selected.

#### Refine Route...

This function allows to request a Routing Engine in order to refine a given route. By "refining" we mean computing all real intermediates points between some given major points. This could be useful to compute a trip giving only the wished important steps.

This is only available on routes.

#### View Google Directions

This option is only available on a track created using the Route Finder tool.

Launch a web browser to see the Google directions page which yielded the route.

The record of the Google route is stored in the track's comment, so if the comment is changed (or the route was created by something other than the Route Finder tool) this will not work correctly.

### Waypoint Sublayer Options

Repeats options available at the TrackWaypoint level, but only those for waypoints:

- New Waypoint. Same as the layer New Waypoint

- View All Waypoints. Same as the layer View All Waypoints

- Goto Waypoint. Same as the layer Goto Waypoint

- Delete All Waypoints. Same as the layer Delete All Waypoints

- Delete Waypoints from Selection. Same as the layer Delete Waypoints from Selection

- List Waypoints. Opens a new dialog with the list. As described in the Aggregrate layer

### Waypoint Properties

This shows a dialog with detailed information for the waypoint. Many properties of the waypoint can changed here, such as the comment, the symbol used in drawing or the image (normally a photograph taken at this position) assiocated with it. When a waypoint has an image, a thumbnail of it is drawn in the viewport for the waypoint (in preference to the symbol).

If the waypoint has an associated image, then the Geotag information may be updated, either with updating the file's modification timestamp or not. This can be useful when the waypoint has been moved.

### Waypoint Operations

#### Goto

This centers the viewport on the selected waypoint.

#### Geotag Images...

This opens the Geotag Dialog to allow Geotagging multiple images to the position of this waypoint. In this circumstance creation of waypoint options are disabled and only the options related to writing the EXIF information are available.

#### Transform

Offers a subset of the track utilities. Currently only setting the altitude from DEM data methods are available.

#### Visit Webpage

If the waypoint's comment (or description) starts with `http:` then this option is available and allows launching a web browser to go to the webpage.

#### Visit Geocache Webpage

If the waypoint's name is in Geocache form (GCXXXXX) then this option is available and allows launching a web browser to go to the Geocache page.

#### New Waypoint

Same as the layer New Waypoint.

### Version1.3+: Geotag Images

This dialog allows geotagging images (normally taken with a digital camera) against a specific waypoint or via interpolation against a specific track or all tracks in the TrackWaypoint layer - depending on how it is invoked.

When geotagging against tracks, images need to have an EXIF DATE_TIME_ORIGINAL (nearly always set by a camera). This timestamp is then used to find the location when the image(s) was taken by searching through the track(s) to find the nearest time - interpolating between points if necessary to set the location.

Generally it is good policy to synchronize your camera's clock with your GPS clock before taking photographs. However the times can be adjusted afterwards (if necessary) to take into consideration clock differences.

Various options allow control of how the geotagging process is performed:

- Images - Add the images used for geotagging

- Create Waypoints

- Overwrite Existing Waypoints

- Write EXIF

- Overwrite Existing GPS Information

- Interpolate Between Track Segments

- Image Time Offset - The number of seconds to ADD to the photos time to make it match the GPS data. Calculate this with (GPS - Photo). Can be negative or positive. Useful to adjust times when a camera's timestamp was incorrect.

- Image Timezone - The timezone that the used when the images were created. For example, if a camera is set to AWST or +8:00 hours. Enter +8:00 here so that the correct adjustment to the images' time can be made. GPS data is always in UTC.

## GPS Layer

The GPS layer is responsible for uploading and downloading GPS data from a GPS device. It also is responsible for realtime GPS tracking. Expand the GPS layer in the layers panel to see the two layers it uses for uploading and downloading. To upload, download, or use realtime tracking, right-click the GPS layer and click the appropiate menu item.

### Download

To download data from the GPS, right-click the GPS layer and click Download from GPS.

### Upload

To upload data to the GPS, first populate the GPS Upload child layer of the GPS layer (either by creating waypoints/tracks/routes in it, or copying and pasting or dragging waypoints/tracks/routes from another layer). Then right-click the GPS layer and click Upload to GPS.

### Realtime Tracking

You must set up gpsd correctly or use a GPSD server and put the correct information in the GPS layer properties dialog. Then right-click the layer and select Start Realtime Tracking.

### Empty Item

There are several options to quickly delete a subsection of data:

- Empty Realtime

- Empty Upload

- Empty Download

- Empty All

## DEM (Digital Elevation Model) Layer

This layer provides elevation data from the Shuttle Radar Topography Mission (SRTM)

Elevation data can be useful in planning trips, as you many wish to avoid/minimise the hills encountered. [OSM Cyclemap is also useful this way too]

To download the data use the DEM Download tool (shown on the toolbar), and then click on a area of the viewport. Once files have been downloaded they can then be loaded from disk via the DEM properties in future application runs.

The current data server is: NASA STRM 2.1.

ATM &appname; does not auto download DEM data. If you want to get lots of data blocks, you may wish to use some other program get such as curl or wget to download them for an area.

Using many DEMs is CPU/memory intensive. Depending on your computer's capability, &appname; will be less responsive when about 50+ DEM blocks are loaded. It is probably unwise to attempt using 200+ blocks, so trying to use DEMs covering large countries/continents (USA, Australia etc...) is unlikely to work. In these conditions under Linux, &appname; may be automatically stopped by the "OOM Killer"

## Maps Layer

This layer provides a single map resource, you may have multiple map layers but only top one (if enabled) will be visible. You will need an open internet connection when you are downloading maps, but once downloaded they are available from the hard disk cache. When map are avaliable from the disk cache it is much faster and can be used offline.

Some maps are continually improving over time (e.g. OpenStreetMap) and so in order to not to have to (re)download the data all the time &appname; employs a timeout method - Tile Age to determine whether to access the server. However a forced refresh for the current view can be made via the Reload All Onscreen Maps option.

Inbuilt maps include various Terraserver (Primarily USA coverage) and OpenStreetMap (OSM) ones and more:

- Bing Bird's Eye (Aerial) Maps (&appname; Version1.2+)

- Terraserver Topos

- Terraserver Aerials

- Terraserver Urban Areas

- OpenStreetMap (Mapquest) - This is the default (&appname; Version1.3+)

- OpenStreetMap (Mapnik)

- OpenStreetMap (Cycle)

- OpenStreetMap (Transport) (&appname; Version1.3+)

- NASA BlueMarble

- SpotMap (&appname; Version1.1+)

&appname; can be configured to handle additional maps. See for further detail.

### Layer Operations

#### Download Missing Onscreen Maps

This requests map tiles for areas of the viewport that do not currently have one.

#### Download New Onscreen Maps

This requests map tiles only if the maps are older than the Tile Age preference.

#### Reload All Onscreen Maps

Force a refresh of all visible map tiles.

#### Download Maps in Zoom Levels

This opens a dialog to enable requesting the download of maps for the region in the viewport over a specified number of zoom levels. The download method type can be specified to help limit the number of requests.

There are some inbuilt limits to prevent downloading large amounts of map tiles.

Please respect the usage policy of the tile set provider. Such as OSM Tile Usage Policy.

##### Maps Download Dialog: Example

## Aggregate Layer

This layer is a container layer to hold other layers. There is always an initial and controlling Top Layer that can not be removed or renamed.

This layer type is useful for grouping other layers, especially layers, in whatever categories are relevant to you: such as by activity, location or date. Here are some suggestions:

- Hiking

- Mountain Biking

- Road Cycling

- Car Trips

- Sailing

- Holidays

- UK Points of Interest

- USA Points of Interest

- etc...

Thus one can have a list of all your tracks, but groups can be shown or not using the relevant layers visibility checkbox.

### Layer Operations

The following are available on Aggregate Layers:

### New Layer

Add a new layer of the selected type.

### Sort

The list within the treeview can be sorted.

Currently alphabetical (A to Z or Z to A) sorts are available, since only the name can be seen in the treeview.

### Track List

Selecting this opens a dialog listing all the tracks in a table along side statistics such as track length and maximum speed. Each column header is clickable and will reorder the list according to that particular column.

This table may be invoked from a variety of different layer levels and will then list only the relevant tracks (and/or routes).

- Aggregate Layer: Lists Tracks and Routes and the TrackWaypoint Layer they are in

- TrackWaypoint Layer: Lists Tracks and Routes

- TrackWaypoint Track sublayer: Lists Tracks only

- TrackWaypoint Route sublayer: Lists Routes only

#### Track List Dialog: Example

> This is showing all tracks and routes (although there are no actual routes here!) in multiple TrackWaypoint layers, that has been sorted by height. Note that routes will not have timestamps or speeds, but may have elevations and should have some distance!

Hovering the mouse over an entry will show a tooltip of the comment or description if it is available.

Each entry in the track list can be selected and on mouse right click offers these options:

- View. Move the viewport to the area of the item and highlight it.

- Statistics. Opens the Properties dialog on the tab. Note this will close the track list dialog.

### Waypoint List

Selecting this opens a dialog listing all the waypoints to give a overview of the waypoint information. Each column header is clickable and will reorder the list according to that particular column.

This table may be invoked from a variety of different layer levels and will then list only the relevant waypoints.

- Aggregate Layer: Lists Waypoints and the TrackWaypoint Layer they are in

- TrackWaypoint Layer: : Lists Waypoints

- TrackWaypoint Waypoint sublayer: Lists Waypoints

#### Waypoint List Dialog: Example

> This was invoked on a TrackWaypoint layer and shows all waypoints from that single layer. It has been sorted by the symbols.

Hovering the mouse over an entry will show a tooltip of the description if it is available.

Each entry in the list can be selected and on mouse right click offers these options:

- View. Move the viewport to the area of the item and highlight it.

- Properties. This will open the properties dialog. Note this will close the waypoint list dialog.

- Show Picture. If enabled, this will open the associated image in an external Image Viewer program.

### Visibility Options

This offers a quick way to set all the visibilities of each item within the containing layer, rather than having to change each one individually.

- Show All. Ensures all items are set to be visible.

- Hide All. Ensures all items are set to be invisible. This is useful for then turning on single items afterwards so the display is not cluttered.

- Toggle. Inverts the visibility status of each item.

## GeoRef Layer

This layer allows one to use any image as a map. You will need to tell it how to align the map to a position in the world and the scale of map.

### Layer Operations

#### Zoom to Fit Map

Automatically set a zoom level to see the entire map coverage.

#### Goto Map Center

Center the viewport on this map.

#### Export to World File

Opens a file save dialog to save the scale and position information as a World File.

## Coordinate Layer

This layer is allows drawing of grid lines on the viewport.

## Tools

&appname;'s mouse actions on the viewport are controlled by which tool is active. Only one tool can be active at a time. The default mode is pan.

You can use the scroll wheel, the middle-click, the middle-click+drag to zoom, center map at position and pan respectively no matter what tool you are using.

Scroll: zoom in and out keeping the mouse over same location

Ctrl-scroll: pan north-south (also Ctrl-up, Ctrl-down)

Shift-scroll: pan east-west (also Ctrl-left, Ctrl-right)

Ctrl-shift-scroll: zoom in and out, without changing the center (also Ctrl+, Ctrl- [*not* KeyPad +/-])

Middle-click: make the clicked point on the map the center

Middle-click and drag: pan

### Pan

This is the default mode of operation for &appname;.

This mode is entered by clicking on the toolbar icon:

Pan moves the viewpoint. A single click centers the viewport at that point, whereas click and drag dynamically moves the view around. This is the default tool.

This mode can also be entered by the keyboard shortcut Ctrl+Shift+P

### Zoom

This mode is entered by clicking on the toolbar icon:

Zooms in and out on the clicked part of the map or by the selected area.

This mode can also be entered by the keyboard shortcut Ctrl+Shift+Z

Ctrl + left or right click: Zoom in/out and center the map on the clicked location

Shift (and hold) + left mouse button: Draws a bounding box area on which to zoom in. The zoom action is performed when the left mouse button is released.

### Ruler

This mode is entered by clicking on the toolbar icon:

The ruler is used to measure the bearing and distance between two points: Click on first point and then move the mouse point around - the values will be continually updated. A second click will freeze the ruler at that point.

This mode can also be entered by the keyboard shortcut Ctrl+Shift+U

### Version1.1+: Select

This mode is entered by clicking on the toolbar icon:

The select tool allows one to choose any waypoint or track by clicking on it (or reasonably near) in the viewpoint.

ATM to select a track one must actually click on a trackpoint, which is also selected.

This mode can also be entered by the keyboard shortcut Ctrl+Shift+S

### TrackWaypoint Layer Tools

You must have a Layer selected to use these tools.

#### Create Waypoint

Enable this tool by clicking on the toolbar icon:

Left click will open the new waypoint dialog using the specified position.

#### Create Track

Enable this tool by clicking on the toolbar icon:

Left click to create a new trackpoint. If it's the initial trackpoint you will be asked to enter a name for the track. If Ctrl is held at the same time, it will jump the new trackpoint position to a nearby existing trackpoint. Right click or Backspace: undo one point.

Double click or Escape: to finish track creation. Finishing the track is also available via the right click and track menus.

One must finish the current track to be able to create another track.

#### Create Route

Enable this tool by clicking on the toolbar icon:

This operates in exactly the same way as the Create Track above.

One must finish the current route to be able to create another route.

#### Edit Waypoint

Enable this tool by clicking on the toolbar icon:

Left Click/drag: select/move a waypoint. If Ctrl is held at the same time, it will jump the waypoint position to a nearby existing trackpoint. If Shift is held at the same time, it will jump the waypoint position to a nearby existing waypoint.

Right-click on waypoint: opens a menu with waypoint actions (the same menu accessed by right-clicking the waypoint in the layers panel)

#### Edit Trackpoint

Enable this tool by clicking on the toolbar icon:

Left click near a trackpoint (in screen pixel terms) to bring up the Track Point Edit dialog on that trackpoint. Whilst the edit dialog is already open, left click again and drag enables moving of the trackpoint. If Ctrl is held at the same time, it will jump the new trackpoint position to a nearby existing trackpoint.

##### Edit Trackpoint Dialog

Editing options in the Trackpoint Edit dialog include:

- Edit the trackpoint name

- Changing raw lat/long position and altitude

- Forward (go to the next trackpoint)

- Back (go to the previous trackpoint)

- Delete

- Insert. Inserts a point halfway to next trackpoint

- Split.

Several fields are read only for reference purposes, values are shown if the trackpoint has such information:

- Time.

- Speed and course.

- 'Between' values: Speed, Time Difference and Distance Difference. When moving between trackpoints (via the Back and Forward buttons) these values are calculated.

- GPS precision factors.

###### Trackpoint Edit Dialog: Example

One must have been going downhill here to get a reasonable speed by bicycle!

#### Show Picture

Enable this tool by clicking on the toolbar icon:

Opens an image viewer with the picture associated with the waypoint. By default this uses the default system image viewer. For Linux you can override this with the setting in the

#### Route Finder

Enable this tool by clicking on the toolbar icon:

Creates a track using default routing engine between two points. Requires an internet connection. Click one point, then click another to create a track.

Right-click: undo last routing (only track removed - not any waypoints)

Ctrl: continue previous track

### Georef Map Layer Tools

You must have a Map Layer selected to use these tools.

#### Georef zoom

Enable this tool by clicking on the toolbar icon:

Changes the zoom level of the georeferenced map and changes the &appname; zoom level accordingly. Useful if you are trying to match GPS data to a georeferenced map.

#### Georef move

Enable this tool by clicking on the toolbar icon:

Drag to move the georeferenced map.

### Map Download

You must have a Layer selected to use this.

Enable this tool by clicking on the toolbar icon:

Click to download a single tile. Drag to download tiles in the dragged rectangle area.

Right-click to redownload tiles via the selected method. Right-click and drag to redownload tiles in the dragged rectangle area by the selected method. The possible methods to redownload one or more tiles are:

- Bad - Only if the tile is corrupt in some way or missing, then this will download a new copy

- New - Refresh the tile according to the local map cache and if server has a newer version

- All - Redownload the tile

#### Map Tile Information

By right clicking on viewport and selecting Show Tile Information you can see the tile properties of this location for the current map layer and current zoom level. This includes the remote source URL for the tile and the cached version on the local filesystem with timestamp details.

#### Map Tile Info Dialog: Example

This is using MapQuest at &appname; zoom level 128 over the Isle of Wight, UK.

### DEM Download

You must have a Layer selected to use this.

Enable this tool by clicking on the toolbar icon:

Click to download and import a DEM file.

#### DEM File Information

By right clicking on viewport and selecting Show DEM File Infomation you can see the file properties of the DEM file for this location. This includes the remote source URL for the file and the cached version on the local filesystem with timestamp details.

#### DEM File Info Dialog: Example

This is for block 51N, 003W - covering Bristol in the UK.

### Webtools

Many services are available only via a web browser (Google Maps, OpenStreetMap Potlach editor, etc.).

Jumping from &app; to such service can become annoying.

&appname; allows you to open such service directly at the position currently viewed in &app;.

This feature is called Webtools. It is also known as External Tools.

## Preferences

### General

#### Localisation

You can select units displayed by &appname; to best fit your usage.

##### Properties dialog: units part

Concerning degrees, you can select the way to display them:

DDD

  decimal degree

DMM

  partial sexagesimal display: degrees, minutes and decimal part of minutes

DMS

  sexagesimal display: degrees, minutes and seconds

##### Properties dialog: degree display options

#### Waypoint Icon Size

An option exists to control the icon (symbol) size used for waypoints

#### Home Default Location: Latitude and Longitude

You can set the Home location directly by inputting the latitude and longitude in decimal degrees.

#### Tile's age

This age is used to decided wether or not a new request to tile server must be done.

Changing this value, you will increase or decrese the network load.

#### Default maplayer directory

This property sets the default directory of the tiles cache. This value is used when you create a new map layer.

You are still able to change this value in each map layer properties.

#### Map Cache Memory Size

This controls the amount of maps that are stored in memory, rather than having to reread from disk. Generally if you have a system with lots of memory it's recommended to increase this value.

### Export/External

#### KML Export Units

Allows setting the units used when saved as the KML file type, such as Metric or Statue units

#### Image Viewer (Not Windows)

Allows setting the program used to view images associated with Waypoints.

By default this is set to xdg-open which should open the system's default image viewer, however this can be overridden with this setting.

Note: for Windows systems, viewing images associated with Waypoints always uses the system's default image viewer.

#### External GPX programs

Allows setting the programs invoked via the Layer menu Export Layer Open With 'program'

Two options are given so that it can be configured for various uses such as:

- An OSM editor (default)

- Some other user defined program

### OpenStreetMap Traces

#### OSM Username + Password

Store your OSM details here, so that you don't need to enter it in every time in the procedure.

Your OSM password will be stored in plain text.

### Routing

#### Routing engine

You can select the routing engine used by default, ie by features that do not propose a live selection, like .

### Startup

Naturally since these preferences effect the startup, the values will not be used until &appname; is restarted.

#### Restore Window Setup

When this is enabled, the main window size and layout (such as whether the statusbar or layers panel are shown) is restored to the values from last use.

#### Default Map Layer

When this is enabled, a map layer is automatically added whenever &appname; is opened and a &appname; file is not to be loaded.

The map layer used is defined by the map layer's default values.

#### Startup Method

Enables selection of how the startup position should be determined.

- Home Location (default) - Position as set by the Set the Default Location

- Last Location - Uses the last position viewed on the viewport

- Specified File - Load the file as specified below

- Auto Location - Use the web service hostip.info to attempt to determine your location via IP lookup

#### Startup File

Loads this specified file when the Startup method is set to Specified File

#### Check For New Version

Periodically (no more than once every 14 days), check to see if there is a new version of &appname; available.

## Howto's

### Getting Started

&appname; from version 1.5 has several features to ease the start up process. On the very first run, you will be asked if you want to enable these features which make use of an Internet connection. If you select no or you have upgraded from an earlier version you can choose to enable any of the startup options via the .

Some other general use cases for using &appname;, are as follows:

#### Go to an area of interest

&appname;'s default location is a Manhatten, New York, USA, so you may need to pick another place that interests you - such as where you live.

##### Method A

1. Use the online location address/place search.

   Use the Go to Location toolbar button or from the menus View Go to Location. You can change the search location provider if desired. Enter the name of place you wish to go to (you may need to specify the country to refine the search). Also you can enter a post code or a ZIP code instead.

   You will need an internet connection for this search to work

##### Method B

1. If you know the coordinates of where you want to view:

   Use View and select from either Go to Lat/Lon or Go to UTM and then enter in the specific coordinates.

##### Method C

1. Use the GPS Layer or File Acquire From GPS to load data directly from your GPS into &appname;.

   You can specify the types of data to acquire: Tracks, Routes and/or Waypoints.

   You must have write permission to the port used. For Unix like OS:

   - /dev/ttyS0 is the first serial port

   - /dev/ttyUSB0 is the first USB port

   - usb: is any USB port

   Depending on your distribution only one of the USB port types may work

   For Windows:

   - com1: is the first serial port

   - usb: is any USB port

   The GPS devices supported are those supported by GPSBabel.

   Garmin and Magellan GPS devices supported by all versions, later versions of GPSBabel support more devices such as DeLorme and Navilink.

##### Method D

1. Get data from files in GPX or KML format, which can be opened directly. Use File Open

   Other formats can be imported that are supported by GPSBabel. File Acquire Import File With GPSBabel...

   The viewport will be automatically moved and resized to view the contents of the file.

#### Add a Map Layer

Use Layers New Map Layer, and choose a suitable cache directory where you would like to store your tracks and click OK. Zoom to a comfortable level (I suggest 4 mpp) by clicking the left and right mouse buttons on the gray area where your tracks are. Now from the menu choose the Tool. Click where you would like to download a map. Regardless of what tool you are using, the middle mouse button always pans.

You need an open internet connection when you are downloading maps.

If you can no longer see your tracks or waypoints and only the map, it is because the layer named Map is ABOVE your TrackWaypoint layer that your GPS data is in. This means that it will be drawn last and on top of the other . Look at the to the left which shows this order. Select the Map layer from the list and click the down arrow button beneath the list until the Map layer is below the TrackWaypoint layer. Your tracks will now be drawn over the map.

#### Set Your Home Location

You can save the current center position of the viewport as the default location AKA the Home Location by Edit Set the Default Location.

Then at any time you can return to this place by clicking on the Home icon on the toolbar.

You can also set the default location via specifing the exact latitude and longitude in the .

### From 1st startup to GPS track (including offline maps)

The first you'll see is an empty map, because &appname; in its default configuration will download maps only on demand. Before fetching unneeded data, one can position to a location of interest, e.g. Stuttgart: View Go to Location, enter `Stuttgart`.

#### Fetching the maps

Map

1. Layers New Map Layer

2. in the layer properties dialogue choose e.g. OpenStreetMap (Mapnik).

3. For the moment, we keep the default Maps Directory (the directory in which the maps will be stored and can be used for offline usage).

4. Check Autodownload maps and keep the zoom level as Use Viking Zoom Level.

   however, that these settings will play an important role in the pre-fetch for offline usage discussed later

You'll see a map of Stuttgart. Using the mouse wheel, you can zoom in and out. The maps for the choosen resolution will be downloaded automatically.

DEM Layer (Height Map)

1. Zoom out to 512.

2. Layers New DEM Layer

3. Keep the download source as is (SRTM Global 90m), hit OK.

In the layer listing on the left, the layer should reside above the map layer. If this is not the case, highlight the DEM layer an shift it one up (using the arrow up button).

1. highlight the DEM layer in the layer listing on the left

2. in the toolbar, check DEM layer download/import (the last symbol)

3. a left-click in the map window should then fetch the DEM data

This might take some time.

Sometimes, a tile does not show up correctly (you might see only a black frame in the map window) because it got corrupted during transfer. In order to correct this, you can delete the corresponding datafile in the cache.

     right-click the DEM layer properties

The DEM Files listing allows you to delete the specific tiles (alternatively do this from the command line).

You can also alter the Min. and Max. elevation in this dialogue.

#### GPS Track with Height Profile

1. Uncheck the layer (the map is shown again)

2. Layers New TrackWaypoint Layer

   Ensure the new track layer is above the map layer.

3. Expand the layer, select Tracks

4. In the tools menu choose Create Track

5. Leftclick in the map window, enter a name

6. Click several times to generate a track (a right-click removes the last point).

   Height data is set automatically since DEM data is available

7. Expand tracks in the layer menu, your track should show up, select it

8. Right click your track, select Properties

9. Click the tab Elevation-distance - enjoy the plot

In order to save this setting for later usage

1. click OK in the Track Properties dialog

2. File Save As, choose a name (you can open this view later via file Open).

#### Usecase: offline data for holiday

Suppose you want to have the and data offline for your holiday in Italy near Bologna.

1. Start a new &appname; session.

2. View Go to Location, enter Bologna

3. Layers New Map Layer

4. Choose e.g. OpenStreetMap (mapnik).

5. adapt the maps directory e.g. to `/home/user/.viking-map-holiday/`. This allows you to delete the map stuff after holiday without purging the rest of your maps.

6. check autodownload map

7. keep viking zoom level

8. zoom out to 1024

9. add a layer (as discussed above)

10. download the DEM data

In the &app; version discussed here, the DEM data automatically are stored in `/home/user/.viking-maps/`. You can move the corresponding tiles into `.viking-map-holiday/` if you like.

Download map data for all zoom levels

1. uncheck the DEM layer for the map to show up

2. navigate the map to be centered at Bologna

3. choose the zoom such, that all regions of interest are displayed in the map window (e.g. 1024)

4. follow this sequence until you have all tiles for all zoom levels you need

   1. right-click the map layer properties

   2. set the zoomlevel explicitely one below the last (in the first cycle 512), hit OK

   3. right click the map layer Download Missing Onscreen Maps

   4. wait until all tiles for that resolution have been downloaded

This may take some time and some hard disk capacity.

Do not forget to save your configuration (as discussed above).

### OpenStreetMap project

OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. One of sources of data for this project is GPS tracks. &appname; supports this project via the GPS Traces methods, both uploading and downloading such data.

Also see for further detail.

#### Uploading data to OpenStreetMap

It is possible to upload data directly from &appname; to OpenStreetMap.

##### Upload a layer

One solution is to upload whole a layer. To do this, simply select the layer and right click on it. Then, select Upload to OSM.

##### Upload a single track

Another solution is to upload an individual track. Simply select the track and right click on it. Then select Upload to OSM.

##### Fill in the form

In both cases, &appname; will retain some information. The email field is the email you used to subscribed into OpenStreetMap. The password field is the password you used with this account. The filename is the name you want your upload has on the server. This information is displayed by the osm server. The description is some descriptive information. The tags field is a white separated list of tags.

#### Downloading Traces from OpenStreetMap

It is possible to download GPS traces directly from OpenStreetMap into &appname;. This feature can be really useful for checking existing data before uploading new ones.

##### Download all visible tracks

One solution is to select File Acquire OSM traces... . Each request can get up to 5,000 points. The dialog box allows setting which group of 5,000 points to get. These groups are known as Page Numbers which start at 0. Increasing the page number parameter allows one to request the subsequent sets of point groups.

#### Downloading Your Own Traces from OpenStreetMap

It is possible to download any of your personal GPS traces previously uploaded to OpenStreetMap into &appname;.

You will need to provide your OSM username and password to get the list of your OSM Traces. From this list you can select which traces to retrieve. This list can be sorted on each column so that it easier to find an individual trace or select a group of traces by similar properties.

### Geotagging

This assumes you already have a layer enabled for ease of use (if not see above to get one).

#### Manual Positioning

This is useful for instances when you already know exactly where the image was taken (no need for tracklog). Or maybe you want to adjust an automatically generated waypoint for the position of the subject of the image rather than the location that the photograph is taken from. ATM this process only works on an individual image, so it will be tedious for handling lots of images.

First create a layer or use an existing one; and select it in the . NB Make sure this layer is above the map layer in the Layers Panel list. Create a new waypoint (or move an existing one) to exact location desired:

- Select the tool, then left click on the map at the location desired, choosing an image to associate with it in the new waypoint dialog

- Select the tool, then left click on waypoint to be moved. Left click again and drag the waypoint to the location desired

Then using the Select tool left click on waypoint to select it, then right click to access the Waypoint properties menu, then choose Update Geotag on Image Update

The Update Geotag on Image options are only available when a waypoint has an image associated with it.

#### Automatic Positioning Against a Tracklog

First you will need a tracklog with timestamps in it. Either load one from a previously saved file or freshly acquired from a GPS device - see Getting Started. It helps if this is the track that was recorded at the time you took some photographs!

Select the track either from the layers panel on the left or via the viewport using the tool. Then right click on it and chose the Geotag Images... leading you to the Dialog.

Load some images that where taken around the time the track log was recorded. Confirm the other options in the dialog - normally the defaults should be alright and select OK. If things are succesful, new waypoints with thumbnail images of the photographs will appear. You should probably check they are really in the right place as often the timestamp of the camera may not be aligned to the GPS correctly leading to inferring incorrect locations.

##### Option: Overwrite Waypoints

This is particularly useful when one finds an attempt at geotagging gives wrong locations, often due to time offset issues. Simply try again with a new time offset (often 1 hour adjustments due to Daylight Savings or Summer Time times) and the old waypoints will be updated (instead of creating new ones).

If you have multiple tracks in a TrackWaypoint layer, then invoking the Geotag Images... action on the layer will search all the tracks to find location matches.

### GPS Real Time Location (Not Windows)

&appname; relies on gpsd to provide the current location from a real time feed from a GPS device. Unfortunately gpsd is not available on Windows, so currently this functionality is disabled in Windows builds of &appname;

This assumes you already have a layer enabled for ease of use (if not see above to get one).

Turn on the GPS Device, ensure it has figured out it's location and plug it in to your computer.

#### Set Up GPS Layer

You will need a layer. One can be added via Layers Add GPS Layer.

Adjust the Realtime Tracking Mode settings to interface with gpsd as necessary. Normally the defaults should suffice.

Current Linux distributions should run gpsd automatically when a GPS Device is plugged in. Otherwise you may have to run gpsd manually.

Then right-click the layer and select Start Realtime Tracking. Hopefully the viewport should jump to the GPS location.

Troubleshooting checklist:

1. Confirm gpsd is running.

1. Confirm on the GPS device it has a location.

1. Confirm the Realtime Tracking Mode settings.

### What to Do if &appname; Does Not Seem to Work

In order to get some information about what &appname; is doing, start it in verbose debug mode via the command line:

    viking -dV

For instance you can check the correct URLs &appname; is using in requesting remote data for DEMs or map tiles in the verbose debug output. E.g. Something like this for DEMs:

    ** (viking:28778): DEBUG: curl_download_uri: uri=http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N48E008.hgt.zip
    * About to connect() to dds.cr.usgs.gov port 80 (#0)
    * Trying 152.61.128.95... * connected
    * Connected to dds.cr.usgs.gov (152.61.128.95) port 80 (#0)
     GET /srtm/version2_1/SRTM3/Eurasia/N48E008.hgt.zip HTTP/1.1
    User-Agent: viking/0.9.8 libcurl/7.18.2 GnuTLS/2.4.2 zlib/1.2.3.3 libidn/1.8
    Host: dds.cr.usgs.gov
    Accept: */*
     HTTP/1.1 200 OK
     Date: Sun, 26 Jul 2009 18:13:38 GMT
     Server: Apache
     Last-Modified: Tue, 21 Jul 2009 19:57:35 GMT
     ETag: eac3f8-1828f5-46f3caa76070a
     Accept-Ranges: bytes
     Content-Length: 1583349
     Content-Type: application/zip

    * Connection #0 to host dds.cr.usgs.gov left intact
    * Closing connection #0
    ** (viking:28778): DEBUG: dem_layer_add_file: /home/username/.viking-maps/srtm3-Eurasia/N48E008.hgt.zip

Or for OSM Mapnik tile server:

    * About to connect() to tile.openstreetmap.org port 80 (#0)
    *   Trying 193.63.75.28... * connected
    * Connected to tile.openstreetmap.org (193.63.75.28) port 80 (#0)
     GET /13/4065/2748.png HTTP/1.1
    User-Agent: viking/0.9.96 libcurl/7.20.1 GnuTLS/2.8.6 zlib/1.2.3.4 libidn/1.18
    Host: tile.openstreetmap.org
    Accept: */*

    * HTTP 1.0, assume close after body
     HTTP/1.0 200 OK
     Date: Thu, 14 Oct 2010 22:18:42 GMT
     Server: Apache/2.2.8 (Ubuntu)
     ETag: "b66ff9d46474bab68262a3483428a232"
    ** (viking:16704): DEBUG: curl_get_etag_func: ETAG found: "b66ff9d46474bab68262a3483428a232"
     Content-Length: 17194
     Cache-Control: max-age=94805
     Expires: Sat, 16 Oct 2010 00:38:47 GMT
     Content-Type: image/png
     Age: 5153
     X-Cache: HIT from konqi.openstreetmap.org
     X-Cache-Lookup: HIT from konqi.openstreetmap.org:3128
     Via: 1.1 konqi.openstreetmap.org:3128 (squid/2.7.STABLE7)
     Connection: close

    * Closing connection #0
    * About to connect() to a.andy.sandbox.cloudmade.com port 80 (#0)
    *   Trying 178.63.75.195... ** (viking:16704): DEBUG: curl_download_uri: uri=http://tile.openstreetmap.org/13/4065/2749.png
    * About to connect() to tile.openstreetmap.org port 80 (#0)
    *   Trying 193.63.75.28... * connected
    * Connected to a.andy.sandbox.cloudmade.com (178.63.75.195) port 80 (#0)
     GET /tiles/cycle/13/4065/2747.png HTTP/1.1
    User-Agent: viking/0.9.96 libcurl/7.20.1 GnuTLS/2.8.6 zlib/1.2.3.4 libidn/1.18
    Host: a.andy.sandbox.cloudmade.com
    Accept: */*

    * connected
    * Connected to tile.openstreetmap.org (193.63.75.28) port 80 (#0)
     GET /13/4065/2749.png HTTP/1.1
    User-Agent: viking/0.9.96 libcurl/7.20.1 GnuTLS/2.8.6 zlib/1.2.3.4 libidn/1.18
    Host: tile.openstreetmap.org
    Accept: */*

    * HTTP 1.0, assume close after body
     HTTP/1.0 200 OK
     Date: Thu, 14 Oct 2010 23:44:35 GMT
     Server: Apache/2.2.8 (Ubuntu)
     ETag: "8e520ad47ce9c1b63430554886eb5fab"
    ** (viking:16704): DEBUG: curl_get_etag_func: ETAG found: "8e520ad47ce9c1b63430554886eb5fab"
     Content-Length: 18094
     Cache-Control: max-age=87742
     Expires: Sat, 16 Oct 2010 00:06:57 GMT
     Content-Type: image/png
     X-Cache: MISS from konqi.openstreetmap.org
     X-Cache-Lookup: MISS from konqi.openstreetmap.org:3128
     Via: 1.1 konqi.openstreetmap.org:3128 (squid/2.7.STABLE7)
     Connection: close

## Extending Viking

Currently, &app; has some extention points based on configuration files. The file format is heavily inspired by the GtkBuilder file format: you specify the class of the GObject to build and set its properties. Technically, it is a XML file containing a "objects" root element. Inside this element, you set a collection of "object".

Here is an example:

    <objects>
      <object class="ClassName">
        <property name="property_name1">Property value</property>
        <property name="property_name2">Property value</property>
      </object>
      ...
    <objects>

You can find more examples in the documentation part of the distribution.

### Map Source

It is possible to add new map's sources. The file is `~/.viking/maps.xml` for UNIX like systems and `C:\Documents and Settings\username\.viking\maps.xml` on Windows XP.

An example of the file is in the distribution `doc/examples/maps.xml`. Further examples and values are online in the Maps Wiki

The `VikSlippyMapSource` allows to declare any map's source working like OpenStreetMap. It supports the following properties:

id

  this is an integer and should be unique as it used to identify the map source

label

  the text displayed in the map's source selection dialog

hostname

  the server's hostname (eg. "tile.openstreetmap.org")

url

  the parametrized address of the tile, in the spirit of C printf format, with 3 "%d" fields for X, Y and Z (zoom level) (eg. "/%d/%d/%d.png")

The `VikTmsMapSource` allows to declare any TMS service. It supports the following properties:

id

  this is an integer and should be unique as it used to identify the map source

label

  the text displayed in the map's source selection dialog

hostname

  the server's hostname (eg. "tile.openstreetmap.org")

url

  the parametrized address of the tile, in the spirit of C printf format, with 3 "%d" fields for X, Y and Z (zoom level) (eg. "/%d/%d/%d.png")

The `VikWmscMapSource` allows to declare any WMS or WMS-C service. It supports the following properties:

id

  this is an integer and should be unique as it used to identify the map source

label

  the text displayed in the map's source selection dialog

hostname

  the server's hostname (eg. "tile.openstreetmap.org")

url

  the parametrized address of the tile, in the spirit of C printf format, with 4 "%s" fields for bounding box coordinates (eg. "/coord=%s,%s,%s,%s")

### Go-to search engines

It is possible to add new new search engines for the "Go-To" feature. The file is `~/.viking/goto_tools.xml`.

An example of the file in the distribution `doc/examples/goto_tools.xml`.

Currently, there is a single object class available: `VikGotoXmlTool`. Such feature allows to declare any search engine using a XML format as result.

The related properties are:

label

  the text displayed in the Go-To dialog

url-format

  the parametrized address of the query, in the spirit of C `printf` format, with a single "%s" field (replaced by the query string)

lat-path

  XML path of the latitude (eg. `/root/parent/elem`)

lat-attr (optional)

  name of the attribute (of previous element) containing the latitude

lon-path

  XML path of the longitude (eg. `/root/parent/elem`)

lon-attr (optional)

  name of the attribute (of previous element) containing the longiude

As a facility (or readability) it is possible to set both path and attribute name in a single property, like an XPath expression. To do so, simply set both info in lat-path (or lon-path) in the following format: `/root/parent/elem@attribute`.

### External tools

It is possible to add new external tools. The file is `~/.viking/external_tools.xml`.

An example of the file in the distribution `doc/examples/external_tools.xml`.

The `VikWebtoolCenter` allows to declare any Webtool using a logic based on center coordinates and zoom level value.

The related properties are:

label

  the text displayed in the menu entry

url

  the parametrized URL to open, in the spirit of C printf format, with 2 "%s" and a "%d" fields for X, Y and Z (zoom level) (eg. "http://hostname/?lat=%s&lon=%s&zoom=%d")

The `VikWebtoolBounds` allows to declare any Webtool using a logic based on bounds coordinates.

The related properties are:

label

  the text displayed in the menu entry

url

  the parametrized address of the tile, in the spirit of C printf format, with 4 "%s" fields for left, right, bottom and top (eg. "http://hostname:8111/load_and_zoom?left=%s&right=%s&bottom=%s&top=%s")

### Routing engine

It is possible to declare new routing engines. The file is `~/.viking/routing.xml`.

An example of the file in the distribution `doc/examples/routing.xml`.

The `VikRoutingWebEngine` allows to declare a routing engine available via HTTP.

The related properties are:

id

  a string, should be unique as it used to identify the routing engine

label

  the text displayed in the menu entry

url-base

  the base URL of the web service (eg. "http://hostname/service?")

url-start-ll

  the part of the URL setting the starting point location, parametrized in the spirit of C printf format, with 2 "%s" for coordinates (eg. "&start=%s,%s")

url-stop-ll

  the part of the URL setting the end point location, parametrized in the spirit of C printf format, with 2 "%s" for coordinates (eg. "&stop=%s,%s")

url-via-ll

  the part of the URL setting via point location, parametrized in the spirit of C printf format, with 2 "%s" for coordinates (eg. "&via=%s,%s")

url-start-dir

  the part of the URL setting the starting point location for direction based routing, parametrized in the spirit of C printf format, with one "%s" for direction (eg. "&start=%s")

  (Optional)

url-stop-dir

  the part of the URL setting the end point location for direction based routing, parametrized in the spirit of C printf format, with one "%s" for direction (eg. "&start=%s")

  (Optional)

referer

  an URL to serve as referer for the HTTP request (eg. "http://hostname/")

follow-location

  the max depth of recursive redirections

### Remote File Datasources

It is possible to add web references expected to return a file which can then be opened directly or converted via GPSBabel.

The file is `~/.viking/datasources.xml`.

An example of the file is in the source distribution `doc/examples/datasources.xml`.

The `VikWebtoolDatasource` allows to declare any URL using logic based on coordinates.

The related properties are:

label

  the text displayed in the menu entry

url

  the parametrized URL to open in the spirit of C printf format, with up to 7 "%s" values. e.g. `http://hostname/getfile?lat=%s&lon=%s`

  The order and meaning of these parameters is given by the url_format_code below

url_format_code

  A string describing the parametrized URL substitution parameters, each character represents how to translate each term.

  B = Bottom of the current view i.e. minimum latitude

  L = Left of the current view i.e. minimum longitude

  T = Top of the current view i.e. maximum latitude

  R = Right of the current view i.e. maximum longitude

  A = center lAtitude of the current view

  O = center lOngitude of the current view

  Z = OSM Zoom value of the current view. See Zoom Levels

  Thus for the url example above then the format code should be AO

file_type

  This value is passed on for the -i parameter in interfacing with GPSBabel.

  If it is not defined then the returned file is interpreted internally as a GPX file.

  Possible values such as 'kml', 'mapsource' etc.. can be used. See GPSBabel File Formats for the full list.

### More

Note that, on UNIX like systems, the extension files (`maps.xml`, `goto_tools.xml`, `external_tools.xml`, `datasources.xml`) are also searched in `/etc/viking` and `/usr/share/viking` directories (or related in your system).

The `XDG_DATA_DIRS` environment variable can be used to change these directories.

The `XDG_DATA_HOME` environment variable is also used (if set) to look for these extension files.

### Miscellaneous Settings

Various individual values are automatically saved between &app; sessions in the `~/.viking/viking.ini` file.

This file is not intended to be manually edited, but since it is a plain text file it can be changed if desired.

Some values in this file are read only, in the sense that there is no way to set it other than by manually entering in the keys and values (the key will not exist in the file otherwise). This allows some fine tuning of &app; behaviours, without resorting to recompiling the code. However is it not expected that these values should need to be changed for a normal user, hence no GUI options for these have been provided.

Here is the list of the read only keys and their default values.

1. maps_max_tiles=1000

2. maps_min_shrinkfactor=0.0312499

3. maps_max_shrinkfactor=8.0000001

4. maps_real_min_shrinkfactor=0.0039062499

5. background_max_threads=10

6. window_menubar=true

7. version_check_period_days=14

8. trackwaypoint_start_end_distance_diff=100.0

9. gps_statusbar_format=GSA

   This string is in the Message Format Code

10. trkpt_selected_statusbar_format=KEATDN

    This string is in the Message Format Code

#### Message Format Code

Currently for ease of implementation the message format code is a string of characters.

Each character represents what should be inserted in relation to a Trackpoint.

One day it might evolve into something more user friendly with a frontend to control it, perhaps allowing arbitary text too. However for now at least some control is offered :)

Character Code

  G = Some text to display at the start of the message - GPSD

  K = Some text to display at the start of the message - Trkpt

  A = Altitude of a Trackpoint

  S = Speed of a Trackpoint

  C = Course of a Trackpoint

  L = Location of a Trackpoint

  T = Time of a Trackpoint

  M = Time diff of a Trackpoint from the previous trackpoint

  X = Number of satellites used in the trackpoint fix

  D = Distance of the trackpoint from the start of a track (following along the track)

  P = Distance difference of the trackpoint from the previous trackpoint

  N = Name of track to which the trackpoint belongs

  E = Name of the trackpoint

Output Notes

  If the output has * after it, then the value has been calculated via interpolation (such as speed when the Trackpoint does not contain a speed value).

  If the output has ** after it, then difficulties were encountered in trying to work the value so probably a default of 0 will be shown.

## Dependencies

### gpsbabel

&appname; uses GPSBabel to convert data.

### unbuffer (optional)

&appname; uses unbuffer command to optimize conversion calls.

### gpsd (optional - but not Windows)

&appname; can use gpsd to get the current location.