<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY appname          "Viking">
  <!ENTITY app "<application>Viking</application>">
  <!ENTITY appversion   "1.11">
  <!ENTITY manrevision  "1.11">
  <!ENTITY date "January 2026">
]>
<!-- =============Document Header ============================= -->
<article id="index" lang="en">
  <articleinfo>
    <title>&app; Manual</title>
    <abstract role="description">
      <para>&app; is a free/open source program to manage GPS data.</para>
    </abstract>

    <copyright>
      <year>2026</year>
      <holder>Guilhem Bonnefille</holder>
      <holder>Rob Norris</holder>
    </copyright>

    <!-- An address can be added to the publisher information. -->
    <publisher role="maintainer">
      <publishername>Viking Project</publishername>
    </publisher>

    <xi:include href="legal.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
    <!-- The file legal.xml contains link to license for the documentation,
        and other legal stuff such as "NO WARRANTY" statement.
        Please do not change any of this. -->

    <authorgroup>
      <author>
        <firstname>Guilhem</firstname>
        <surname>Bonnefille</surname>
        <email>guilhem.bonnefille@gmail.com</email>
      </author>
      <author>
        <firstname>Rob</firstname>
        <surname>Norris</surname>
        <email>rw_norris@hotmail.com</email>
      </author>
      <!-- Contributors from the Wiki history -->
      <author>
        <firstname>username:</firstname>
        <surname>Alexxy</surname>
      </author>
      <author>
        <firstname>username:</firstname>
        <surname>Vikingis</surname>
      </author>
      <author>
        <firstname>username:</firstname>
        <surname>Tallguy</surname>
      </author>
      <author>
        <firstname>username:</firstname>
        <surname>EliotB</surname>
      </author>
      <author>
        <firstname>Alex</firstname>
        <surname>Foobarian</surname>
      </author>
      <!-- END -->
    </authorgroup>

    <revhistory>
      <revision>
        <revnumber>&appname; Manual V&manrevision;</revnumber>
        <date>&date;</date>
        <revdescription>
          <para>This document describes the latest version of &appname;.</para>
        </revdescription>
      </revision>
    </revhistory>

    <releaseinfo>This manual describes version &appversion; of &appname;.</releaseinfo>

    <legalnotice>
      <title>Feedback</title>
      <para>To report a bug or make a suggestion regarding the &app; application or
      this manual, follow the directions in the
      <ulink url="https://sourceforge.net/projects/viking/">Project Website</ulink>.
      </para>
    </legalnotice>
  </articleinfo>

  <indexterm zone="index">
    <primary>&app;</primary>
  </indexterm>
<!-- ============= Document Body ============================= -->
<section id="Introduction"><title>Introduction</title>
<section><title>Overview</title>
<para>
&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:
</para>
<itemizedlist mark="opencircle"><listitem>
<para>
Uploading and downloading waypoints, tracks and routes to/from GPS.
</para>
</listitem>
<listitem>
<para>Preparing tracks, routes and waypoints for trips using maps from services such as OpenStreetMap (OSM).
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.
</para>
</listitem>
<listitem>
<para>
After trips, tracks and waypoints from GPS can be downloaded, stored, managed and reused in your (or your friends') later trips.
</para>
</listitem>
<listitem>
<para>
Analyzing Off Highway Vehicle (OHV) and hiking trips, understanding where you went and how far you were from something.
</para>
</listitem>
<listitem>
<para>Making waypoints, tracks and routes to follow to easily get some place
you've never been before or don't have GPS data for but online
maps exist for it.
</para>
</listitem>
<listitem>
<para>
Making maps with using <ulink url="https://mapnik.org/">Mapnik</ulink>.
Not on <trademark>Windows</trademark> at the moment.
</para>
</listitem>
<listitem>
<para>
Grouping data from multiple trips using a hierarchical data manager.
</para>
</listitem>
<listitem>
<para>
Analyzing speed at different places (to some degree), adding waypoints where you forgot to mark one but did slow down or stop.
</para>
</listitem>
<listitem>
<para>
Downloading and storing OpenStreetMap and/or other map types on your hard drive and looking at them later.
</para>
</listitem>
<listitem>
<para>
Editing routes or tracks and their trackpoints, joining and splitting up tracks and routes.
</para>
</listitem>
<listitem>
<para>
Show the live GPS position on the map (for use on a mobile device - e.g. a laptop). Not <trademark>Windows</trademark> at the moment.
</para>
</listitem>
<listitem>
<para>
Import and export track, route and waypoint files of various types via <application>GPSBabel</application>
</para>
<note>
<para>
Previously on <trademark>Windows</trademark>, <application>GPSBabel</application> was distributed with &appname;, but this no longer the case.
</para>
<para>
It can be downloaded from its website <ulink url="https://www.gpsbabel.org"></ulink>.
</para>
</note>
</listitem>
<listitem>
<para>
View, create and update Geotagged Images (using EXIF data).
</para>
</listitem>
</itemizedlist>
<note>
<para>
&appname; is under continual improvement: see the <ulink url="https://sourceforge.net/p/viking/wikiallura/Main_Page/#todo-ideas"><citetitle>Roadmap / Wishlist</citetitle></ulink>:
</para>
</note>
<figure>
<title>Screenshot: OSM Cycle Map and Many Tracks</title>
<screenshot>
  <graphic format="JPG" fileref="figures/Viking-OSM-CycleMap-ManyTracks.jpg"/>
</screenshot>
<informalexample>
<para>
Here the toolbar is on the same line as the Menubar.
This is set via the <xref linkend="prefs"/> <menuchoice><guimenu>Toolbar</guimenu><guisubmenu>Append to Menu</guisubmenu></menuchoice> setting.
</para>
</informalexample>
</figure>
</section>
<section><title>Rationale</title>
  <para>
    One of the aims of &appname; is to allow the user to be in control, being able to work offline without key dependencies on remote services.
    Thus when &appname; is started for the very first time you are asked whether to enable "automatic internet features".
    For those concerned any tracking potential or other issues arising from using remote services, one can select <emphasis>No</emphasis> and then manually control these requests.
  </para>
  <para>
    Subsequently the individual features can be managed separately.
  </para>
  <itemizedlist>
    <listitem><para>Requests for Map Tiles for the current viewport for Map Layers - see <xref linkend="map_props"/></para></listitem>
    <listitem><para>Requests for Digital Elevation Model (DEM) files when using <xref linkend="DEM"/> layers</para></listitem>
    <listitem><para>Requests for Route Directions during <xref linkend="route_finder"/> operations</para></listitem>
    <listitem><para>Search Location requests - see <xref linkend="Goto"/></para></listitem>
    <listitem><para>GeoLocation dependent on the IP address - see <xref linkend="auto_location"/></para></listitem>
  </itemizedlist>
  <para>
    Further these facilities use a default set of service providers which can be changed and extended.
  </para>
</section>
<section><title>GTK</title>
<para>
  &appname; is built using the <ulink url="https://en.wikipedia.org/wiki/GTK">GTK</ulink> GUI framework, supporting version 3. Thus a number of features are governed by GTKs default behaviour or by the Desktop System and Theme (of course affected by those relevant systems settings). Hence details for configuring these is out of scope for this documentation.
</para>
</section>
<section id="Flatpak"><title>Flatpak Version</title>
<para>
  &appname; is now available for use in Linux as a Flatpak, however since &appname; is running in a sandbox some system integration features no longer work properly in the Flatpak runtime.
</para>
<para>
  See the file <filename>FLATPAK.md</filename> in the top level of the source distribution for more detail.
</para>
</section>
</section>

<section id="GeneralConcepts"><title>General Concepts</title>
<section id="prj_file" xreflabel="Viking Project File"><title>Project File</title>
<para>
  &appname; has it's own file type traditionally marked by the <emphasis>.vik</emphasis> file extension - known as the &appname; Project File.
  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 (aggregates, maps, tracks, waypoints, etc...).
</para>
<para>
  When &appname; is opened (without specifying any Project Files), it will use a default Project File.
</para>
<para>
  The Project File name is shown in the window title bar.
</para>
<para>
  To indicate when changes have been made the Project File name is preceded by an '*'.
</para>
<para>
  Any Non-&appname; file types are loaded into the current Project File.
  If just one Non-&appname; file is opened into the default (empty) Project File, then this filename is shown in the window title bar but inside a pair of brackets '[Like This]',
   to indicate that it is not a Project File name.
</para>
</section>
<section id="gc_layers" xreflabel="Layers"><title>Layers</title>
<para>
<emphasis>Layers</emphasis> is concept one may know from powerful graphics editors such as <application>Photoshop</application> or <application>GIMP</application>.
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.
</para>
<para>
Unfortunately the downside of this complexity is remembering how differing layers of data can obscure other data.
</para>
<para id="Alpha" xreflabel="Alpha">
The Map layers and various other image features have <ulink url="https://en.wikipedia.org/wiki/Alpha_compositing"><citetitle>Alpha Compositing</citetitle></ulink>,
to create the appearance of partial transparency.
This is a value between 0 and 255 with the default being 255 for a fully solid image, whereas 0 is fully transparent.
By controlling this value one can see data below it in the layer hierarchy for interesting effects. A value of around 160 can be useful for blending views.
</para>
</section>
<section id="gc_layers_panel" xreflabel="Layers Panel"><title>Layers Panel</title>
<para>
The panel on the left is called the <emphasis role="bold">layers panel</emphasis>.
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.
</para>
<para>
  The panel also contains tabs for <xref linkend="Calendar"/>, <xref linkend="Goto"/> and <xref linkend="PanelStats"/> features.
</para>
</section>
<section id="viewport"><title>Viewport</title>
<para>
The main &appname; area where the layer data is drawn, is called the <emphasis role="bold">viewport</emphasis>.
</para>
<para>
This will typically include a <xref linkend="Map"/> layer with a default map created as standard.
</para>
<para>
Using the mouse (and keyboard) you can move and zoom the viewport or select items on view.
See the <xref linkend="tools"/> section for further details about different modes and the various control options supported.
</para>
</section>
<section><title>Track Graphs</title>
<para>
Below the viewport can be shown track (and route) elevation/distance and time/speed (tracks only) graphs of the selected item.
These are the same graphs as shown in <xref linkend="track_properties"/>.
The graphs will automatically hide itself when nothing or no suitable item is selected.
</para>
<para>
Moving the mouse pointer over the graphs will show a tooltip readout of the nearest trackpoint.
Similarly to the track properties graphs, left clicking will center the viewport on the trackpoint.
A right click menu offers controls of the drawing options, a subset of track operations and access to further information dialogs.
</para>
</section>
<section id="Statusbar"><title>Statusbar</title>
<para>This provides a readout of various information:</para>
<itemizedlist>
<listitem><para>The currently selected (mouse pointer) tool</para></listitem>
<listitem><para>The number of items to process in the background - normally this the number in the map tile download queue</para></listitem>
<listitem><para>The zoom level</para></listitem>
<listitem><para>The location of the mouse pointer (and potentially height information if <xref linkend="DEM"/> data is available)</para></listitem>
<listitem><para>The number of log messages</para></listitem>
<listitem><para>A general feedback area, such as the result of an operation or information about the selected item</para></listitem>
</itemizedlist>
<para>E.g. when creating a track/route, the general feedback area displays some information about the track/route.</para>
<figure>
<title>Statusbar</title>
<screenshot>
  <graphic format="PNG" fileref="figures/trw_statusbar.png"/>
</screenshot>
</figure>
<para>This part of the statusbar displays:
<itemizedlist>
<listitem><para>The total distance of the track/route (including currently edited segment).</para></listitem>
<listitem><para>The bearing of the currently edited segment.</para></listitem>
<listitem><para>The distance of the currently edited segment.</para></listitem>
</itemizedlist>
</para>
<para>Left clicking on the number of background processes opens a dialog from which the processes can be inspected and cancelled.</para>
<para>Left clicking on the number of log messages opens a dialog from which the messages can be viewed, filtered, copied and cleared.
Newest messages are put at the top of the list. Middle clicking  on the number of log messages clears the log messages without opening the dialog.</para>
<para>For convenience, a zoom selector can be opened from the status bar. Simply left-click on the zoom level.</para>
<figure>
  <title>The zoom selector available from status bar</title>
  <screenshot>
    <graphic format="PNG" fileref="figures/zoom_status_popup.png"/>
  </screenshot>
</figure>
</section>

<section id="toolbar" xreflabel="Toolbar"><title>Toolbar</title>
<para>The toolbar is an area for buttons that perform common actions.</para>
<para>Some actions are modal, so the appropriate layer needs selected before these toolbar buttons are enabled. See <xref linkend="tools"/> more detail.</para>
<para>The display of the toolbar is influenced by the <xref linkend="prefs_toolbar"/></para>
<para>Right clicking on the toolbar and selecting <menuchoice><guimenu>Customize</guimenu></menuchoice> allows jumping to the <xref linkend="prefs_toolbar_customize"/> directly.</para>
</section>

<section id="projection" xreflabel="Projection"><title>Projections</title>
<para>
&appname; supports different projections:
<itemizedlist>
<listitem>
<para>UTM</para>
</listitem>
<listitem>
<para>LatLon (also called EPSG:4326)</para>
</listitem>
<listitem>
<para>Mercator (also called Spherical Mercator)</para>
</listitem>
</itemizedlist>
</para>
</section>

<section id="zoom" xreflabel="Zoom Level"><title>Zoom Level</title>
<para>
&appname; uses a zoom level measured as a pixel factor in Metres Per Pixel (MPP), hence this may also be referred to as a zoom factor. By default in this document the zoom level refers to &appname;'s MPP definition unless otherwise stated.
</para>
<para>
This is in contrast to Tiled Web Map systems such as OpenStreetMap which use the <ulink url="https://wiki.openstreetmap.org/wiki/Zoom_levels">Zoom Level</ulink> as a measure of how much of the world is visible on the map.
</para>
</section>

<section id="dmapcache" xreflabel="Disk Map Cache"><title>Disk Map Cache</title>
<para>
&appname; stores downloaded map tiles to disk for a couple of reasons:
</para>
<itemizedlist>
<listitem><para>Enables off line usage</para></listitem>
<listitem><para>Reduces loading on the map tile provider</para></listitem>
</itemizedlist>
<para>
The &appname; automatic caching strategy is two fold:
</para>
<itemizedlist>
<listitem>
<para>
  If the age of the tile on disk is less than the specified cache expiry age (for the relevant <xref linkend="Map"/> layer),
  it will <emphasis>not</emphasis> attempt to contact the server to get a new version of the tile.
</para>
</listitem>
<listitem>
<para>
  When the tile age has expired &appname; will attempt a <emphasis>refresh</emphasis> 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.
</para>
</listitem>
</itemizedlist>
<para>
  You can override the caching scheme by using right-click on the Map on the layers panel and selecting <guimenuitem>Redownload All Onscreen Maps</guimenuitem>, or <keycap>Ctrl+F5</keycap> for the top most map displayed. This will get the latest version held by the server.
</para>
<note>
<para>
  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 <ulink url="https://help.openstreetmap.org/questions/102/i-have-made-edits-but-they-dont-show-up-on-the-map">I have made edits but they don't show up on the map</ulink>)
</para>
</note>

<para>
The layout of the cache on disk itself can be controlled via a per Map Layer property.
<itemizedlist>
<listitem><para>Viking - Legacy default in a private cache layout scheme</para></listitem>
<listitem><para>OSM - Newer available default (1.6+)</para>
<para>
This is to increase the compatibility between &appname; and similar applications that cache tiles on disk so that the tiles can be shared.
</para>
</listitem>
</itemizedlist>

</para>
</section>

<section id="shortcut_keys" xreflabel="Shortcut Keys"><title>Shortcut Keys</title>
<para>
&appname; has several shortcut keys or key combinations for commands as listed in the main window along side the command.
</para>
<para>
By default some function keys follow standard GUI behaviour:
</para>
<itemizedlist>
<listitem><para><keycap>F1</keycap> Help (view this manual)</para></listitem>
<listitem><para><keycap>F2</keycap> Rename (the selected layer - only in the Layers Panel)</para></listitem>
<listitem><para><keycap>F5</keycap> or <keycap>Ctrl+R</keycap> Refresh the maps on screen</para></listitem>
<listitem><para><keycap>F10</keycap> Select the Menubar (in built behaviour)</para></listitem>
<listitem><para><keycap>F11</keycap> Full Screen</para></listitem>
<listitem><para><keycap>Ctrl+F5</keycap> or <keycap>Ctrl+Shift+R</keycap> Redownload the maps on screen</para></listitem>
</itemizedlist>
<note>
<para>
Refresh attempts to get new maps only if the disk tile map cache time period has expired for any particular map tile.
Redownload gets all on screen maps from the server, ignoring the disk tile map cache.
</para>
</note>
<para>
Other function keys control turn on/off visibility of various elements:
</para>
<itemizedlist>
<listitem><para><keycap>F3</keycap> Toggle visibility of the Toolbar</para></listitem>
<listitem><para><keycap>F4</keycap> Toggle visibility of the Menubar</para></listitem>
<listitem><para><keycap>Shift+F5</keycap> Toggle visibility of the Scale indicator on the viewport</para></listitem>
<listitem><para><keycap>F6</keycap> Toggle visibility of the Center Crosshairs on the viewport</para></listitem>
<listitem><para><keycap>F7</keycap> Toggle showing selected items (e.g. tracks or waypoints) in the highlight colour in the viewport</para></listitem>
<listitem><para><keycap>Shift+F8</keycap> Toggle visibility of the calendar</para></listitem>
<listitem><para><keycap>Shift+F9</keycap> Toggle visibility of the Layers Panel buttons</para></listitem>
<listitem><para><keycap>F9</keycap> Toggle visibility of the Layers Panel</para></listitem>
<listitem><para><keycap>F12</keycap> Toggle visibility of the Statusbar</para></listitem>
<listitem><para><keycap>Shift+F12</keycap> Toggle visibility of the Track Graphs</para></listitem>
</itemizedlist>
<para>
Standard shortcuts are provided for normal GUI operations: such as creating new files, opening, saving and exiting.
Then there are shortcuts specific to &appname; to switch projection modes, zoom in/out, create layers, switch the active tool mode and move the map:
</para>
<itemizedlist>
<listitem><para><keycap>Ctrl+Up</keycap> Pan the viewport North</para></listitem>
<listitem><para><keycap>Ctrl+Right</keycap> Pan the viewport East</para></listitem>
<listitem><para><keycap>Ctrl+Down</keycap> Pan the viewport South</para></listitem>
<listitem><para><keycap>Ctrl+Left</keycap> Pan the viewport West</para></listitem>
<listitem><para><keycap>Ctrl+Keypad+</keycap>, <keycap>Ctrl++</keycap> or <keycap>Ctrl+=</keycap> for Zoom In</para></listitem>
<listitem><para><keycap>Ctrl+Keypad-</keycap> or <keycap>Ctrl+-</keycap> for Zoom Out</para></listitem>
<listitem><para><keycap>Ctrl+0</keycap> Restore default zoom</para></listitem>
</itemizedlist>
<important><para>These work irrespective of the <xref linkend="tools"/> mode selected</para></important>
<para>
  <keycap>Up</keycap>,<keycap>Left</keycap>,<keycap>Right</keycap> and <keycap>Down</keycap> also pan the viewport in the respective direction when any of the primary window tools is active (<xref linkend="selecttool"/> (when nothing is selected), <xref linkend="pantool"/>, <xref linkend="zoomtool"/> or <xref linkend="rulertool"/>)
</para>
<para>
For other combinations see the menu entry themselves.
</para>
</section>

<section>
<title>Keyboard Configuration</title>
<para>Keyboard configuration is supported by the standard GTK+ (v2/v3) way of changing shortcuts for menu entries.</para>
<para>Hover over the menu option with the mouse pointer and press the keyboard shortcut you want to bind it to.</para>
<para>To delete a keyboard assignment, press <keycap>Backspace</keycap> whilst over the menu entry.</para>
<note>
<para>
	If the keyboard shortcut is already in use you will not receive any notification that new action replaces the old action.
	This is probably why most distributions have this facility disabled by default.
	Thus you will need to enable <emphasis>Editable menu accelerators</emphasis> for your system.
	Check the Desktop Menu and Toolbar Control or other User Interface preferences for this setting.
</para>
</note>
<note>
<para>
	For Windows systems this can be done by adding the line <emphasis>gtk-can-change-accels=1</emphasis> to <filename>%USERPROFILE%\.gtkrc-3.0</filename> (create the file if it does not exist).
</para>
</note>
<para>From &app; 1.6+ the keyboard configuration is automatically loaded and saved between sessions in the <xref linkend="config_keys"/></para>
</section>

<section><title>Tracks vs Routes</title>
<para>
In theory a route is path you are planning to follow and a track is of where you have actually been. The GPX specification splits these into two separate categories, although tracks contain everything a route may have.
</para>
<para>
Q. When planning a <emphasis>route</emphasis> what difference does it make if it's a route or a track?
</para>
<para>
A. One difference is in how a GPS device navigates following the route or track.
The capability, the options and data on a particular device also affect how the navigation is performed.
Often how a device actually works doesn't seem to be formally documented by the manufacturer (and can be firmware dependent too).
Web searches can reveal people's experiences with specific devices on blogs and various forums.
For some devices it will attempt to navigate between route points, which may then suggest various roads and tracks between the points using an internal routing algorithm with some kind of transport profile.
However this is limited to the quality of data available and how well the profile matches ones actual need.
If the points are close enough then the 'best' route for any form of transport will typically be the straight line between the points.
</para>
<note><para>
There are often restrictions on the numbers of route (or track) points the GPS Device can handle - may be 250 or as little as 50.
This generally not a problem for shorter routes, but needs managing for longer or detailed routes.
The number of track points is normally alot higher (e.g. 500 or typically with latest devices 10,000 or more) and less of a problem.
</para>
<para>
  See <xref linkend="gpx_simplify"/> for help to manage this.
</para></note>
</section>

</section><!--General Concepts End-->

<section><title>File Types and the Main Window</title>
<section id="FileTypes" xreflabel="File Types" ><title>File Types</title>
<para>
  &appname; supports the following main geo-data file types:
  <itemizedlist>
    <listitem><para><xref linkend="prj_file"/></para></listitem>
    <listitem><para>GPX</para></listitem>
    <listitem><para>FIT</para></listitem>
    <listitem><para>KML</para></listitem>
    <listitem><para>TCX</para></listitem>
  </itemizedlist>
</para>
<note>
<para>
Extensions from GPX 1.1 are supported in a read/write only fashion; with viewing of the raw data (i.e. no editing).
The arbitrary extension information is not saved in .vik format files.
</para>
<para>
Specific GPX 1.1 extensions such as heart rate, cadence, temperature and power are supported for viewing (including overview graphs) and these values will also be saved in .vik format files.
</para>
<para>
For FIT, KML and TCX - writing is only available via Export methods, which use <application>GPSBabel</application>.
</para>
</note>
<para>
  Also available is reading compressed files and loading any supported geodata files contained within. The compressed file types supported include:
  <itemizedlist>
    <listitem><para><ulink url="https://en.wikipedia.org/wiki/Bzip2">Bzip2</ulink> files</para></listitem>
    <listitem><para><ulink url="https://en.wikipedia.org/wiki/Gzip">Gzip</ulink> files</para></listitem>
    <listitem><para><ulink url="https://en.wikipedia.org/wiki/XZ_Utils">XZ / LZMA</ulink> files</para></listitem>
    <listitem><para><ulink url="https://en.wikipedia.org/wiki/ZIP_(file_format)">Zip</ulink> files</para></listitem>
  </itemizedlist>
</para>
<para>
Several operations apply at the window level as follows next.
Also see <xref linkend="tools"/> for the operational modes that generally work in conjunction with a selected layer.
</para>
</section>
<section><title>Main Window</title>
<para>
  When &appname; is opened (without specifying any Project Files), it will open a window centered on the home location with the default <xref linkend="Map"/>. 
  This behaviour can be changed by the <xref linkend="prefs_startup"/>.
</para>
<para>
  Each window contains menus, a toolbar, a viewport, layers panel and a statusbar.
  Each section (apart from the viewport) can be hidden using the <xref linkend="shortcut_keys"/> or from the
  <menuchoice><guimenu>View</guimenu><guisubmenu>Show</guisubmenu></menuchoice> choices.
</para>
<para>
  Each &appname; window is a separate project - each with it's own <xref linkend="prj_file"/>.
</para>
</section>
<section><title>New</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>New</guisubmenu></menuchoice> menu and on the toolbar <guibutton>New</guibutton>.
</para>
<para>
This creates a new window with the default settings.
</para>
</section>

<section><title>Open</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Open</guisubmenu></menuchoice> menu and on the toolbar <guibutton>Open</guibutton>.
</para>
<para>
This opens a file chooser dialog to select one (or more) files of the supported GPS data file types:
<itemizedlist>
<listitem><para>Viking</para></listitem>
<listitem><para>GPX</para></listitem>
<listitem><para>FIT</para></listitem>
<listitem><para>TCX</para></listitem>
<listitem><para>KML</para></listitem>
<listitem><para>JPG</para></listitem>
</itemizedlist>
</para>
<para>
GPX, FIT, TCX, KML and JPG files will be loaded into the existing &appname; view. A <emphasis>Viking</emphasis> file will be given a new window if the current window is already assigned.
</para>
<tip>
<para>
&appname; handles more file types via the <link linkend="acquire">Acquire</link> methods below.
</para>
</tip>
</section>

<section><title>Open Recent File</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Open Recent File</guisubmenu></menuchoice> menu only.
</para>
<para>
The most recently opened files are available for opening again.
The number of files remembered is controlled by a value in the <xref linkend="prefs_advanced"/>.
</para>
<para>
Note that files imported via the Acquire mechanism are not available in this list.
</para>
</section>

<section><title>Save</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Save</guisubmenu></menuchoice> menu and on the toolbar <guibutton>Save</guibutton>.
</para>
<para>
If the current opened file is <emphasis>Viking</emphasis> 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 <emphasis>new name</emphasis> to save as a <emphasis>Viking</emphasis> file.
</para>
</section>

<section><title>Save As</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Save As</guisubmenu></menuchoice> menu only.
</para>
<para>
This will ask for a <emphasis>new name</emphasis> to save as a <emphasis>Viking</emphasis> file (even it was already a <emphasis>Viking</emphasis> file).
</para>
</section>

<section><title>Reload</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Reload</guisubmenu></menuchoice> menu and optionally on the toolbar.
</para>
<para>
This enables reloading the current <emphasis>Viking</emphasis> file. You will be asked to confirm this action, since any changes will be lost.
</para>
</section>

<section><title>Append File</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Append File...</guisubmenu></menuchoice> menu only.
</para>
<para>
Selecting a <emphasis>Viking</emphasis> file from this method will join the file contents to the current window (instead of creating a new one).
</para>
<para>
GPX and KML files may also be appended, whereby the file contents are added to the currently selected  <xref linkend="TrackWaypoint"/> or <xref linkend="Aggregate"/> layer. Otherwise they are loaded in the normal file open method when no layer is selected.
</para>
</section>

<section id="open_external"><title>Open as External Layer</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Open as External Layer...</guisubmenu></menuchoice> menu only.
</para>
<para>
Selecting a geo-data file (such as GPX, KML, FIT or TCX filetypes) from this method will create an external <xref linkend="TrackWaypoint"/> Layer that loads from the specified file.
The layer is marked as a <emphasis>No write</emphasis> external layer, which means any changes made will not be written back to the file.
To enable changes to be written (only on file types with write support, thus ATM only GPX files), you can change the layer property <menuchoice><guimenu>Filesystem</guimenu><guisubmenu>External layer</guisubmenu></menuchoice> to <emphasis>Yes</emphasis> in the layer properties dialog.
This is in contrast to importing the data and storing it in the Viking file.
</para>
</section>

<section><title>Properties</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Properties</guisubmenu></menuchoice> menu only.
</para>
<para>
Displays some simple properties about the loaded Viking project file (if any), such as full filename including the path, the filesize and the date/time of the file.
</para>
</section>

<section><title>Export All</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Export All</guisubmenu></menuchoice> menu only.
</para>
<variablelist>
<varlistentry>
<term><guilabel>GPX</guilabel></term>
<term><guilabel>KML</guilabel></term>
<listitem>
  <para>This allows converting every <xref linkend="TrackWaypoint"/> layer from the existing project into files of the type choosen.
You will be prompted for a directory into which a new file for each layer will be saved.
</para>
<para>
The KML option uses <application>GPSBabel</application> and so will not be available if <application>GPSBabel</application> can not be detected.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Single GPX File</guilabel></term>
<listitem>
  <para>This allows exporting all visible <xref linkend="TrackWaypoint"/> layers into a single GPX file.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Note that some data properties are not supported by the target export file type. Such as item visibility or track colours.
</para>
</section>

<section id="acquire" xreflabel="acquire"><title>Acquire</title>

<para>
Available on the <menuchoice><guimenu>File</guimenu><guisubmenu>Acquire</guisubmenu></menuchoice> menu and from the <xref linkend="TrackWaypoint"/> layer menu.
</para>
<para>
If used from the <guimenu>File</guimenu> menu these methods place the results in a new TrackWaypoint layer.
</para>
<para>
If used from the <xref linkend="TrackWaypoint"/> layer menu these methods place the results in that TrackWaypoint layer.
</para>

<section>
<title>From GPS</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>From GPS</guimenuitem></menuchoice>
A way of getting information from GPS Devices using <application>GPSBabel</application> to perform the transfer, typically via serial link connections.
</para>
<para>
Select the GPS Device communication settings and then hit <guibutton>OK</guibutton>.
See the <link linkend="method_b">Getting Started</link> section for more info about the settings.
</para>
<note>
<para>
  Only a limited number of devices are supported this way (e.g. Garmin Etrex Legend devices first available ~2003).
</para>
<para>
  For the majority of current (circa 2010-2020) Garmin handheld devices and many other consumer handheld GPS devices (including SatNav style devices such as the <trademark>Garmin Nuvi 255</trademark>) only support a native file system and write information to a <filename>Current.gpx</filename> file or similar. You will have to browse the file system on the device, opening it directly via <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>.
</para>
<para>
  For modern (circa 2015 onwards) wearable devices such as Garmin Forerunner, Fitbit, Suuntu etc...,
  often have their own propriety binary (often wireless) protocols - not compatibile with GPSBabel and thus not &appname; directly either.
  You would need to use their programs / apps to export to an open standard (such as GPX) for use with &appname;.
  Some devices, such as many Garmin Forerunner devices - when physically connected to a PC via a USB cable,
  will offer a file system and then you can open any supported files on them, such as in this case FIT files in the <filename>GARMIN/Activity</filename> directory.
</para>
</note>
</section>

<section>
<title>Import File With GPSBabel</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>Import File With GPSBabel</guimenuitem></menuchoice>
</para>
<para>
Other formats can be imported that are supported by GPSBabel.
</para>
<para>
You need to select the file <emphasis>and</emphasis> the type of the file that is going to be opened,
since there is no automatic detection of the file kind.
</para>
</section>

<section>
<title>OSM Traces</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>OSM Traces</guimenuitem></menuchoice>
</para>
<para>
See <xref linkend="osm_dl"/> section for more information.
</para>
</section>

<section>
<title>My OSM Traces</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>My OSM Traces</guimenuitem></menuchoice>
</para>
<para>
See <xref linkend="osm_my_dl"/> section for more information.
</para>
</section>

<section>
<title>From Geotagged Images</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>From Geotagged Images</guimenuitem></menuchoice>
Enables automatic creation of waypoints from geotagged images.
</para>
<para>
This menu opens a dialog to select such image files.
If the image files have geotag information in them, then a <xref linkend="TrackWaypoint"/> layer with named waypoints positioned at the location of each image with a thumbnail of that image is created.
</para>
</section>

<section>
<title>From Wikipedia Waypoints</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>From Wikipedia Waypoints</guimenuitem></menuchoice>
</para>
<para>
This gets <emphasis>interesting</emphasis> points from Wikipedia for the specified view: either within the extent of layer bounds or within the current viewport boundary.
</para>
</section>

<section>
<title>From Routing</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>From Directions</guimenuitem></menuchoice>
</para>
<para>
This gets a route from given directions.
</para>
</section>

<section>
<title>From URL</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>From URL</guimenuitem></menuchoice>
</para>
<para>
This gets a file from the entered URL.
File formats that can be opened are those supported by GPSBabel.
</para>
<note>
<para>
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.
</para>
</note>
</section>

<section>
<title>Import GeoJSON File</title>
<para>
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>Import GeoJSON File</guimenuitem></menuchoice>
</para>
<para>
This uses the program <ulink url="https://github.com/tyrasd/togpx">togpx</ulink> to load .geojson files.
If the program is not detected on your system, then this option will not be available.
See <ulink url="https://www.npmjs.org/package/togpx">here</ulink> for the installation method.
</para>
<para>
Versions prior to 1.6.0 of GPSBabel did not support the <ulink url="https://geojson.org/">GeoJSON</ulink> file format.
</para>
</section>

</section> <!-- End Acquire -->

<section><title>Print</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Print</guisubmenu></menuchoice> menu and on the toolbar <guibutton>Print</guibutton>.
</para>
<para>
Print uses what is displayed on the current <xref linkend="viewport"/> for printing: i.e. what ever map, tracks and waypoints that are in view, including the
cross hairs and the scale.
</para>
<para>
It uses a standard system print dialog using an image the size of the current viewport in pixel terms.
On the <emphasis>Image Settings</emphasis> you can move the image around the page and scale the image up / or down.
</para>
</section>

<section><title>Generate Image File</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Generate Image File</guisubmenu></menuchoice> menu only.
</para>
<para>
Allows generation of larger (pixel) area images than the standard Print method above.
From the generated image you can use the facilities of the <application>Operating System</application> to print the image
or perform other actions.
</para>
<para>
You should have previously downloaded the tile images for the chosen zoom level,
otherwise the image produced will have missing sections.
</para>
<warning>
<para>
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 <trademark>Windows</trademark> 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.
</para>
</warning>
</section>

<section><title>Generate Directory of Images</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu><guisubmenu>Generate Directory of Images</guisubmenu></menuchoice> menu only.
</para>
<note>
<para>
This is only available in UTM mode.
</para>
</note>
</section>

<section><title>KMZ Map File Overview</title>
<para>
A <ulink url="https://developers.google.com/kml/documentation/kmzarchives">KMZ file</ulink> is a compressed version of a KML file and associated supporting files.
</para>
<para>
A <ulink url="https://garminbasecamp.wikispaces.com/Custom+Maps">KMZ Map file</ulink> is a KMZ file with an image overlay often for use as a Custom Map on Garmin GPSr devices.
</para>
<para>
&appname; only supports basic properties in KMZ Map files, primarily intended for use with Garmin GPSr devices although KMZ exports are known to work with <application>Google Earth</application>.
</para>
</section>

<section><title>Import KMZ Map File</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu></menuchoice> menu only.
</para>
<para>
Enables loading of a selected KMZ map file.
This generates a new <xref linkend="GeoRef"/> map layer using the overlay image contained within the KMZ file.
</para>
</section>

<section><title>Generate KMZ Map File</title>
<para>
Located on the <menuchoice><guimenu>File</guimenu></menuchoice> menu only.
</para>
<para>
Enables exporting the current <xref linkend="viewport"/> as a KMZ map file.
The area and zoom level covered by the KMZ map can be adjusted before saving.
</para>
<para>
Note that Garmin GPSr devices have limits in using images if they are too large (e.g. over 3Mb big) in KMZ files.
&appname; does not enforce any limits on the KMZ files it generates.
</para>
</section>

<section id="Calendar"><title>Calendar</title>
<para>
The calendar marks days when any activity in Tracks occurred. Hovering the mouse pointer over a marked day shows the name of the corresponding <xref linkend="TrackWaypoint"/> Layer. Double clicking on a marked day moves the <xref linkend="viewport"/> to view the first track of that day.
</para>
<para>
Right clicking on the calendar offers further options to navigate in time, including moving the calendar to the next or previous track by date or to move to todays date. It also allows opening a dialog to view related basic astronomical values (sun rise/set, twilight times and moon rise/set) for the selected day, being derived for the location of the centre of the viewport.
</para>
</section>

<section id="Goto"><title>Goto</title>
<para>
This offers to search locations using the selected online providers, by default either <ulink url="https://nominatim.org/">OSM Nominatim</ulink> or <ulink url="https://www.geonames.org/">Geonames</ulink>.
One may click on the an entry in the list of returned results to move the <xref linkend="viewport"/> to that location.
</para>
<para>
See the section <xref linkend="search_provider"/> to configure additional search providers.
</para>
<figure>
<title>Screenshot: Goto Tab</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Goto_Main_Window.png"/>
</screenshot>
</figure>
</section>

<section id="PanelStats"><title>Track/Route Statistics</title>
<para>
  This offers a compact view of statistics of the selected Track or Route.
  Currently this does not refresh if the Track/Route changes but there is a right click menu on the tab,
  which offers a way to manually refresh the values.
</para>
<figure>
<title>Screenshot: Stats Tab</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Panel_Stats_Tab.png"/>
</screenshot>
</figure>
<para>
  Also available is a tab to shows <xref linkend="track_time_splits"/>.
  Since this is a more detailed display that is of interest only to a subset of users and takes up more space, the tab is hidden by default.
  Use <menuchoice><guimenu>View</guimenu><guimenuitem>Show</guimenuitem><guimenuitem>Show Side Panel Splits</guimenuitem></menuchoice> to enable it.
</para>
</section>

<section id="MainGraph"><title>Graphs</title>
  <para>
    When a specific track/route or TrackWaypoint Layer (that contains a single track or route) is selected in the layers panel, then the main graph section is displayed below the viewport.
    If appropriate, this contains a <xref linkend="track_elev_graphs"/> and a Speed-time graph from the <xref linkend="track_properties"/>.
    If there is no timing data the Speed-time graph is not shown, and if no elevation data then the Elevation-distance graph is not shown.
  </para>
<para>
  When moving the mouse pointer over these graphs, it features a popup to give more information about that point and updates the main viewport track display with an equivalent highlighted trackpoint. Left clicking on the graph recenters the viewport to that point, whereas right clicking opens a contextual menu offering features such as accessing the tracks properties or statistics, editting of the specific trackpoint and further controls of the elevation axis scale.
</para>
<para>
  The speed-time graph (as shown below) features a backdrop of daylight, twilight and night time colour indicators.
  This can be turned off via the <xref linkend="prefs_advanced"/>.
</para>
<figure>
<title>Speed-time graph</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Track_speed_time_graph_WinterSolstice2021.png"/>
</screenshot>
<informalexample>
<para>
This is long track example for an overnight and on into the day cycle adventure.
</para>
</informalexample>
</figure>
</section>

</section> <!-- End File Types -->

<xi:include href="edit_view_menus.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<section id="Layers"><title>Layers</title>

<para>
Layers supported by &appname; are:
</para>
<itemizedlist>
<listitem><para><xref linkend="Aggregate"/></para></listitem>
<listitem><para><xref linkend="TrackWaypoint"/></para></listitem>
<listitem><para><xref linkend="GPS"/></para></listitem>
<listitem><para><xref linkend="DEM"/></para></listitem>
<listitem><para><xref linkend="Coordinate"/></para></listitem>
<listitem><para><xref linkend="Map"/></para></listitem>
<listitem><para><xref linkend="GeoRef"/></para></listitem>
<listitem><para><xref linkend="MapnikRendering"/></para></listitem>
<listitem><para><xref linkend="GeoClue"/></para></listitem>
</itemizedlist>
<para>
For each layer there are a few standard options:
</para>
<itemizedlist>
<listitem><para>Properties - Layer setup / configuration settings dialog:</para>
  <itemizedlist>
    <listitem><para>OK: Applies the new values and closes the dialog</para></listitem>
    <listitem><para>Cancel: Dismiss the changes and closes the dialog</para></listitem>
    <listitem><para>Apply: Applies the new values and keeps the dialog open - thus you can see the effect of the new values.</para></listitem>
    <listitem><para>Reset to Defaults: Change the values back to the Layer Defaults. You will still need to then Apply/OK these changed values to take effect.</para></listitem>
  </itemizedlist>
</listitem>
<listitem><para>Cut</para></listitem>
<listitem><para>Copy</para></listitem>
<listitem><para>Paste</para></listitem>
<listitem><para>Delete</para></listitem>
<listitem><para>Visibility - This checkbox on the Layers Panel controls whether the layer is shown in the viewport or not</para></listitem>
</itemizedlist>
<para>
The cut/copy/paste options can be accessed in a variety of ways once the layer has been selected:
</para>
<itemizedlist>
<listitem><para>Standard keys: <keycap>Ctrl+x|c|v</keycap></para></listitem>
<listitem><para>Main menu <guimenuitem>Edit</guimenuitem></para></listitem>
<listitem><para>From the right click menu</para></listitem>
<listitem><para>Buttons at the bottom of the Layers Panel</para></listitem>
</itemizedlist>
<para>
Default values used for each layer's properties can be altered via the <menuchoice><guimenu>Edit</guimenu><guisubmenu>Layer Defaults</guisubmenu></menuchoice> menu options.
These 'User' Defaults settings themselves can be reset back to the original &appname; default values via the <guibutton>Reset to Default</guibutton> button for each layer.
</para>
<para>
See the individual section for detail about each layer.
</para>
</section>

<section id="TrackWaypoint" xreflabel="TrackWaypoint"><title>TrackWaypoint Layer</title>
<para>
TrackWaypoint layers display GPS data (tracks, routes and waypoints).
</para>
<para>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.
</para>
<para>
By right-clicking on tracks, routes or waypoints in the <xref linkend="gc_layers_panel"/>, 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.
</para>

<para>
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 <guibutton>Create</guibutton> toolbar commands or the <guimenuitem>New</guimenuitem> menu commands.
</para>

<para>
The new TrackWaypoint layer dialog allows the layer to be specified as <emphasis>External</emphasis> in the <guimenuitem>Filesystem</guimenuitem> section.
In this case the layer is read from the file specified instead of stored in the Viking file itself.
By default files loaded in the <emphasis>External</emphasis> mode are to <emphasis>No write</emphasis>.
This means that &appname; does not write the layer to the file specified; instead, &appname; only reads the file.
No-write layers are primarily intended to be used with the <xref linkend="open_external"/> option in the File menu.
It possible to specify the External layer mode as <emphasis>Yes</emphasis>, as then changes made to this layer will be saved back into the specified file.
This is only available for filetypes with write support - i.e. only GPX files at present.
Note, &appname; specific options may not be saved if not supported by the GPX export.
</para>

<para>
External layers are loaded only when they are displayed or selected.
Hence, they will not appear in any summary statistics if they have not been loaded.
It is possible to load all external layers contained in an <xref linkend="Aggregate"/> layer by selecting <menuchoice><guimenu>File</guimenu><guisubmenu>Load External Layers</guisubmenu></menuchoice> from the Aggregate Layer context menu.
</para>

<para>
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.
</para>

<para>
By default routes are coloured red. Tracks are automatically assigned a spread of colours.
</para>

<para>
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).
</para>

<para>
Also see <xref linkend="trw_tools"/> for use in conjunction with this layer.
</para>

<section><title>Layer Properties</title>
<para>
This layer has many configurable properties split into several parts:
</para>
<section><title>Waypoints</title>
  <para>Options that affect the drawing of waypoints.</para>
</section>
<section><title>Tracks</title>
  <para>Basic options that affect the drawing of tracks and routes.</para>
</section>
<section><title>Tracks Advanced</title>
  <para>More detailed options that affect the drawing and processing of tracks and routes.</para>
  <para>Options that affect the processing of tracks and routes are:</para>
  <variablelist>
    <varlistentry>
      <term><guilabel>Apply DEM Automatically</guilabel></term>
      <listitem><para>Mainly intended for use with External layers, such that elevations values from DEM supercede those in the source file. This needs a DEM layer with a DEM file covering the area of the track for this to take affect.</para></listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>Remove Duplicate Trackpoint</guilabel></term>
      <listitem><para>Mainly intended for use with External layers, remove duplicate trackpoints when loading in from the source file.</para></listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>Prefer GPS Speed</guilabel></term>
      <listitem><para>Mainly for Maximum speed calculations: use speed from the .</para></listitem>
    </varlistentry>
  </variablelist>
</section>
<section><title>Metadata</title>
  <para>Metadata such as Description, Author and Keywords for this TrackWaypoint Layer.</para>
</section>
<section><title>Filesystem</title>
  <para>Shows the GPX version of the TrackWaypoint Layer and External Layer type information.</para>
</section>
</section><!-- Prop END -->

<section><title>Layer Operations</title>
<para>
The layer has a context menu with several operations.
</para>

<section><title>View Layer</title>
<para>
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).
</para>
</section>

<section><title>View</title>

  <variablelist>
    <varlistentry>
      <term><guilabel>View All Tracks</guilabel></term>
      <listitem id="track_view_all">
        <para>
          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).
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>View All Routes</guilabel></term>
      <listitem id="route_view_all">
        <para>
          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).
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>View All Waypoints</guilabel></term>
      <listitem id="wp_view_all">
        <para>
          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).
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>Ensure Visibility On</guilabel></term>
      <listitem>
        <para>
          Version1.8+: Ensure this layer will be displayed, i.e. not just the visibility of this layer is turned on, but all higher levels in the layer heirarchy as well.
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>View GPX Extensions</guilabel></term>
      <listitem>
        <para>
          Version1.9+: View the raw (XML) text of the GPX extensions for this layer. The menu item is only shown if there are extensions available.
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>Lap Data</guilabel></term>
      <listitem>
        <para>
          Version1.11+: View lap data for this layer. The menu item is only shown if lap data is available.
        </para>
        <note>
          <para>
            At present, lap data is only generated from GPX files.
          </para>
        </note>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Goto</title>
  <variablelist>
    <varlistentry>
      <term><guilabel>Goto Center of Layer</guilabel></term>
      <listitem>
        <para>This will automatically move the viewport to see the whole layer (i.e. tracks, routes and waypoints). It does not adjust the zoom level.</para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>Goto Waypoint</guilabel></term>
      <listitem id="wp_goto">
        <para>This opens a dialog box to enter a name of waypoint to search for. If it is found the viewport is centred on it.</para>
        <note>
          <para>
            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.
          </para>
        </note>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Export Layer</title>
<para>
The layer (all tracks, routes and waypoints) can be exported to following file formats:
</para>
<orderedlist>
	<listitem>
		<para>GPX</para>
	</listitem>
	<listitem>
		<para>Google's KML</para>
	</listitem>
	<listitem>
		<para>Any GPSBabel <ulink url="https://www.gpsbabel.org/capabilities.html">File Formats</ulink></para>
		<para>If necessary you can specify any additional format save options as required.</para>
	</listitem>
	<listitem>
		<para>GeoJSON. Via the program <ulink url="https://github.com/mapbox/togeojson">togeojson</ulink></para>
		<para>This option will not be available if the program is not detected on your system.
		See <ulink url="https://www.npmjs.org/package/togeojson">here</ulink> for the installation method.</para>
	</listitem>
	<listitem>
		<para>GPSPoint - <emphasis>depreciated</emphasis> - only available if appropriate property enabled in <xref linkend="misc_settings"/></para>
	</listitem>
	<listitem>
		<para>GPSMapper - <emphasis>depreciated</emphasis> - only available if appropriate property enabled in <xref linkend="misc_settings"/></para>
	</listitem>
</orderedlist>
<para>
Version1.1+: An individual track can be exported to a GPX file via the track menu.
</para>
</section>

<section id="finish_track"><title>Finish Track or Route</title>
<para>
Selecting this option ends the creation of that individual track or route.
</para>
<note>
<para>
This is only available when a track or route is being created by the <xref linkend="track_edit"/> or <xref linkend="route_edit"/> tools.
</para>
</note>
</section>

<section><title>New</title>
  <variablelist>
    <varlistentry>
      <term><guilabel>New Waypoint</guilabel></term>
      <listitem id="new_wp">
        <para>
          This opens a dialog (see <xref linkend="WptProps"/>) to create a new waypoint. A default name will be suggested and the default position is the center of the viewport.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>New Track</guilabel></term>
      <listitem id="new_track">
        <para>
          This turns on the <xref linkend="track_edit"/> tool.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>New Route</guilabel></term>
      <listitem id="new_route">
        <para>
          This turns on the <xref linkend="route_edit"/> tool.
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Geotag Images</title>
<para>
This starts the Geotagging Images dialog against all tracks in the layer.
See <link linkend="geotagging">Geotagging</link> for further detail.
</para>
</section>

<section><title>Acquire</title>
<para>
This offers the same choice from <xref linkend="acquire"/> methods as on the <guimenu>File</guimenu> menu.
However when invoked from here, the results will be stored in this layer (instead of creating a new one).
</para>
</section>

<section><title>Upload</title>
  <variablelist>
    <varlistentry>
      <term><guilabel>Upload to GPS</guilabel></term>
      <listitem id="gps_upload">
        <para>
          This opens a dialog to select the GPS Device and port to which the layer information will be transferred.
        </para>
        <para>
          The types of GPS information (tracks, routes or waypoints) to be transferred can be selected.
        </para>
        <para>
          Tracks, Routes or Waypoints that are invisible will not be transferred.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Upload To OSM</guilabel></term>
      <listitem id="osm_upload" xreflabel="Upload To OSM">
        <para>
          This opens a dialog to upload all tracks and waypoints to <ulink url="https://openstreetmap.org/">OpenStreetMap</ulink> traces.
          Useful if you are an OpenStreetMap contributor, access details are stored in &appname; <xref linkend="prefs_osm"/>
        </para>
        <para>
          &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.
        </para>
      <note>
        <para>
          This functionality is currently disabled since OSM requires OAuth2 for authentication, but OAuth2 is not supported in &appname;.
        </para>
      </note>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Delete</title>
  <para>Offers deletion of various parts of a TrackWaypoint layer.</para>
  <para>Menu items will be disabled if there are no relevant sublayers of that type.</para>
  <variablelist>
    <varlistentry>
      <term><guilabel>Delete All Tracks</guilabel></term>
      <listitem id="delete_all_tracks">
        <para>Deletes all the tracks in this layer.</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete Tracks from Selection</guilabel></term>
      <listitem id="delete_selection_tracks">
        <para>Opens a dialog with list of all the tracks from this layer to choose the ones to delete.</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete All Routes</guilabel></term>
      <listitem id="delete_all_routes">
        <para>Deletes all the routes in this layer.</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete Routes from Selection</guilabel></term>
      <listitem id="delete_selection_routes">
        <para>Opens a dialog with list of all the routes from this layer to choose the ones to delete.</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete All Waypoints</guilabel></term>
      <listitem id="delete_all_waypoints">
        <para>Deletes all the waypoints in this layer.</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete Waypoints from Selection</guilabel></term>
      <listitem id="delete_selection_waypoints">
        <para>Opens a dialog with list of all the waypoints from this layer to choose the ones to delete.</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete Duplicate Waypoints</guilabel></term>
      <listitem id="delete_duplicate_waypoints">
        <para>
          Deletes duplicate waypoints in this layer.
          Waypoints are considered duplicate if they have the same location and symbol.
          <note>
            <para>If other properties are different such as name, comment, altitude, etc... they will still be considered a duplicate.
            </para>
          </note>
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section id="filter" xreflabel="Filter"><title>Filter</title>
  <variablelist>
    <varlistentry>
      <term><guilabel>Simplify All Tracks</guilabel></term>
      <listitem>
        <para>
          This opens dialog to request the number of points each track will be simplified using <application>GPSBabel</application>. 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.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Compress Tracks</guilabel></term>
      <listitem>
        <para>
          Enables compression of tracks and routes via <application>GPSBabel</application>'s <emphasis>Crosstrack</emphasis> simplify method.
          It opens a dialog to request the Error factor value which is the maximum allowable error that may be introduced by removing a single point.
          It is expressed a distance in units as specified by the <xref linkend="prefs"/> distance option.
          Thus a higher value will remove more points.
          The result is put into a new layer.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Remove Duplicate Waypoints</guilabel></term>
      <listitem>
        <para>
          Remove Duplicate Waypoints - fairly self explanatory, with the results created in a new layer.
        </para>
        <note>
          <para>
            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.
          </para>
        </note>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section id="filter_with_track"><title>Filter With <emphasis>Trackname</emphasis></title>
<para>
This runs <application>GPSBabel</application> on the layer using information from a previously selected track (select via the track menu "Use With Filter" option) with the following command types:
</para>
<itemizedlist>
<listitem><para>Waypoints Inside This</para></listitem>
<listitem><para>Waypoints Outside This</para></listitem>
</itemizedlist>
<para>
The result is generated in a new Track/Waypoint layer.
</para>
</section>

<section><title>Edit</title>
  <variablelist>
    <varlistentry>
      <term><guilabel>Rename</guilabel></term>
      <listitem>
        <para>
          This opens dialog to rename the layer according a format based on the timestamp of the first track's first trackpoint.
          This is the same as the track <xref linkend="rename"/> capability, so see that for further details.
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>List Tracks or Routes</title>
<para>
Opens a new dialog with the list. As described in the Aggregate layer <xref linkend="track_list"/>
</para>
</section>

<section><title>List Waypoints</title>
<para>
Opens a new dialog with the list. As described in the Aggregate layer <xref linkend="waypoint_list"/>
</para>
</section>

</section><!-- End TRW Layer Options -->

<section><title>Track and Route Sublayer Options</title>
<para>Repeats options available at the TrackWaypoint level, but only those for tracks and routes:</para>
<variablelist>
<varlistentry>
<term><guilabel>Finish Track or Route</guilabel></term>
<listitem><para>Same as the layer <link linkend="finish_track">Finish Track or Route</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>New Track or Route</guilabel></term>
<listitem><para>Same as the layer <link linkend="new_track">New Track</link> or <link linkend="new_route">New Route</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>View All Tracks or Routes</guilabel></term>
<listitem><para>Same as the layer <link linkend="track_view_all">View All Tracks</link> or <link linkend="route_view_all">View All Routes</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Delete All Tracks or Routes</guilabel></term>
<listitem><para>Same as the layer <link linkend="delete_all_tracks">Delete All Tracks</link> or <link linkend="delete_all_routes">Delete All Routes</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Delete Tracks or Routes from Selection</guilabel></term>
<listitem><para>Same as the layer <link linkend="delete_selection_tracks">Delete Tracks from Selection</link> or <link linkend="delete_selection_routes">Delete Routes from Selection</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>List Tracks or Routes</guilabel></term>
<listitem><para>Opens a new dialog with the list. As described in the Aggregate layer <xref linkend="track_list"/></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Export Separate GPX Files...</guilabel></term>
<listitem><para>
  Version1.11+: Opens a save dialog to select the output directory. Each individual track or route (that is visible) will be saved as a separate file.
  This can be useful with some GPS devices that don't seem to handle allowing selection of an individual track or route when multiple exist in a GPX file for navigation purposes.
  Tracks or routes will be skipped if there is an already existing file with that name.
</para></listitem>
</varlistentry>
</variablelist>
<para>Also gives other options for handling multiple items:</para>
<variablelist>
<varlistentry>
<term><guilabel>Sort</guilabel></term>
<listitem><para>Gives the ability to sort the items in the treeview alphabetically, by date or track/route number.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Visibility</guilabel></term>
<listitem><para>Offers options to quickly control the visibility of all items within the sublayer, as per <xref linkend="vis_options"/></para></listitem>
</varlistentry>
</variablelist>
</section>

<section id='track_properties' xreflabel="Track and Route Properties"><title>Track and Route Properties</title>
<para>
This shows several tabs for properties and useful statistics about a track or a route, including elevation, speed, heart rate, cadence, temperature and power graphs (if the data is available and the graph has not been disabled via <xref linkend="prefs_trackprops"/>).
</para>
<para>
The tabs can be reordered via drag 'n' drop of the tab label. The ordering is retained between new invocations of the properties dialog.
</para>
<para>
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.
</para>
<para>
For the elevation related graphs the <guibutton>Show DEM</guibutton> check button is only enabled if a suitable <xref linkend="DEM"/> is available that overlaps the track.
</para>
<para>
Graphs either have a <guibutton>Show GPS Speed</guibutton> or <guibutton>Show Speed</guibutton> button.
Each of these overlays relative speed markers along the graph.
The difference between Speed vs GPS Speed is that GPS Speed is taken directly from a field reporting the speed value in the source data.
Typically speeds used in Viking are calculated between the points time and position differences.
This is due to the reporting of speed values in source data is not mandatory and often not present.
</para>
<section xreflabel="Track and Route Properties"><title>Track and Route Properties Tab</title>
<para>
<figure>
<title>Properties Tab: Example (Tabs at side option and reordered)</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Track_properties.png"/>
</screenshot>
</figure>
</para>
</section>
<section id='track_statistics' xreflabel="Track and Route Statistics"><title>Track and Route Statistics Tab</title>
<para>
<figure>
<title>Statistics Tab: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Track_statistics.png"/>
</screenshot>
</figure>
</para>
</section>
<section id='track_elev_graphs' xreflabel="Track Elevation Graph"><title>Track Elevation Graph</title>
<para>
<figure>
<title>Elevation Distance Tab: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Track_elevation_graph.png"/>
</screenshot>
</figure>
</para>
<para>
The following colors are used in the elevation-distance graph:
</para>
<variablelist>
<varlistentry>
<term><emphasis>Main</emphasis> colour - this is dependent on your Desktop theme - often blue by default</term>
<listitem><para>elevation data in graph</para></listitem>
</varlistentry>
<varlistentry>
<term>Yellow</term>
<listitem>
<para>no elevation data</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Green</term>
<listitem>
<para>elevation data from <xref linkend="DEM"/></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Red</term>
<listitem>
<para>speed</para>
</listitem>
</varlistentry>
</variablelist>
</section>

<section id='track_time_splits' xreflabel="Track Time Splits"><title>Track Time Splits</title>
<para>
<figure>
<title>Splits Tab: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Track_time_splits.png"/>
</screenshot>
</figure>
</para>
<para>
This tab displays timing splits on tracks with timing information.
A few different values of split lengths are available, each having it's own tab display.
</para>
</section>
</section>

<section><title>Track and Route Operations</title>

<section><title>Finish Track</title>
<para>
Selecting this option ends the creation of the individual track.
</para>
<note>
<para>
This is only available when a track is being created by the <xref linkend="track_edit"/> tool.
</para>
</note>
</section>

<section><title>Goto</title>
<para>
This centers the viewport on the selected position on the track:
</para>
<itemizedlist>
<listitem><para>Startpoint</para></listitem>
<listitem><para>"Center" - the notional center from the bounds of the track</para></listitem>
<listitem><para>Endpoint</para></listitem>
<listitem><para>Version1.1+: Highest Altitude</para></listitem>
<listitem><para>Version1.1+: Lowest Altitude</para></listitem>
<listitem><para>Version1.1+: Maximum Speed (Not Available on Routes)</para></listitem>
<listitem><para>Version1.9+: Maximum Heart Rate (Not Available on Routes)</para></listitem>
<listitem><para>Version1.9+: Maximum Cadence (Not Available on Routes)</para></listitem>
<listitem><para>Version1.9+: Maximum Power (Not Available on Routes)</para></listitem>
<listitem><para>Version1.9+: Minimum Temperature (Not Available on Routes)</para></listitem>
<listitem><para>Version1.9+: Maximum Temperature (Not Available on Routes)</para></listitem>
<listitem><para>Version1.8+: Previous trackpoint</para></listitem>
<listitem><para>Version1.8+: Next trackpoint</para></listitem>
</itemizedlist>
</section>

<section><title>View</title>
<para>
Version1.1+: This centers the viewport on the track and selects the best zoom level to see it.
</para>
</section>

<section><title>Combine</title>
  <variablelist>

    <varlistentry>
      <term><guilabel>Merge By Time</guilabel></term>
      <listitem>
        <para>
          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.
        </para>
        <note>
          <para>
            This is not available on routes as they have no timestamps.
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Merge With Other Tracks</guilabel></term>
      <listitem>
        <para>
          This opens a dialog listing the other tracks in the same TrackWaypoint layer, from which one can select the other tracks to merge with.
          Tracks are merged in order of time.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Merge Segments</guilabel></term>
      <listitem>
        <para>
          Combines track segments. Effectively removing track segment markers to leave one segment for the whole track.
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><guilabel>Append Track or Route</guilabel></term>
      <listitem>
        <para>
          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.
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Split</title>
  <variablelist>
    <varlistentry>
      <term><guilabel>Split By Time</guilabel></term>
      <listitem>
        <para>
          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.
        </para>
        <note>
          <para>
            This is not available on routes as they have no timestamps.
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Split By Number of Points</guilabel></term>
      <listitem>
        <para>
          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.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Split Segments</guilabel></term>
      <listitem>
        <para>
          Splits track segments into new tracks.
        </para>
        <note>
          <para>
            This is not available on routes as they do not have route segments.
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Split at Trackpoint</guilabel></term>
      <listitem id='trkpt_split' xreflabel="Split at Trackpoint">
        <para>
          Splits the track at the currently selected trackpoint.
        </para>
        <para>
          The current track will finish at this trackpoint.
          A new track will start from a copy of this trackpoint.
        </para>
        <note>
          <para>
            This is only enabled when a trackpoint is selected.
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Create Segments at Trackpoint</guilabel></term>
      <listitem>
        <para>
          Creates a new track segment starting at the selected trackpoint.
        </para>
        <para>
          This is not available on routes as route segments are not allowed.
        </para>
        <para>
          This is only enabled when a trackpoint is selected.
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Insert Points</title>
<note>
<para>
These options are only enabled when a trackpoint is selected.
</para>
</note>
  <variablelist>
    <varlistentry>
      <term><guilabel>Insert Point Before Selected Point</guilabel></term>
      <listitem>
        <para>
          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.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Insert Point After Selected Point</guilabel></term>
      <listitem>
        <para>
          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.
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Delete Points</title>
  <variablelist>
    <varlistentry>
      <term><guilabel>Delete Selected Point</guilabel></term>
      <listitem>
        <para>
          Deletes the currently selected track point.
        </para>
        <note>
          <para>
            This is only enabled when a trackpoint is selected.
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete Points With the Same Position</guilabel></term>
      <listitem>
        <para>
          Deletes subsequent points that have the same position (but have different timestamps).
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete Points With the Same Time</guilabel></term>
      <listitem>
        <para>
          Deletes subsequent points that have the same time stamp (but may have different positions).
        </para>
        <note>
          <para>
            This is not available on routes as they have no timestamps.
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Delete All Points</guilabel></term>
      <listitem>
        <para>
          Removes all track or route points. You will be asked to confirm this action.
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section id="transform" xreflabel="Transform"><title>Transform</title>
<para>
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 :)
</para>
  <variablelist>
    <varlistentry>
      <term><guilabel>Apply DEM data</guilabel></term>
      <listitem>
        <para>
          If any <xref linkend="DEM"/> data is loaded, this will apply the DEM data to give the track elevation data.
          Two ways of applying DEM data are offered:
          <orderedlist>
            <listitem><para>Keep. Retains the existing elevation data of trackpoints and only those missing an elevation value are set.</para></listitem>
            <listitem><para>Overwrite. Elevation data are set on all trackpoints even if they already elevation values.</para></listitem>
          </orderedlist>
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Smooth Missing Elevation data</guilabel></term>
      <listitem>
        <para>
          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:
          <orderedlist>
            <listitem><para>Interpolated. Missing elevation data is interpolated between the previous and next known values.</para></listitem>
            <listitem><para>Flat. Elevation data is filled in from the last previously known value.</para></listitem>
          </orderedlist>
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Convert to Track or Route</guilabel></term>
      <listitem>
        <para>
          If this is a Route then it will convert it to a Track.
        </para>
        <para>
          If this is Track then convert it to a Route.
        </para>
        <note>
          <para>
            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).
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Convert to Waypoints</guilabel></term>
      <listitem>
        <para>
          Each track or route point will be converted into a waypoint.
          The original track or route will be removed unless some information in the track would be lost
          (e.g. If the track has a comment, this is not copied into every waypoint and the track is kept).
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Anonymize Times</guilabel></term>
      <listitem>
        <para>
          Timestamp information of a track can be shifted to be all offset from 1901-01-01.
        </para>
        <para>
          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.
        </para>
        <note>
          <para>
            This is not available for routes, as they have no timestamps.
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Interpolate Times</guilabel></term>
      <listitem>
        <para>
          Trackpoint timestamps between the first and last points are calculated such that track is travelled at equal speed.
          This is mostly useful when tracks don't have timestamps and you wish to recreate your trip (e.g. you've forgotten to turn on your GPS or the batteries have run out)
          Thus edit the first and last trackpoints to set the approximate times of your trip and then use this to give approximate times along the track.
          When used on tracks with timestamps this will overwrite the existing timestamps.
        </para>
        <note>
          <para>
            This is not available for routes, as they have no timestamps.
          </para>
        </note>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Rotate</guilabel></term>
      <listitem>
        <para>
          "Rotate" the track or route by shifting the specified number of points from the start to end
          (or if a negative number it moves end points to the start).
          This is particularly intended for circular routes were you want to adjust where the start/end point is.
          If the start and end points are considered to be far apart, you are required to confirm you want to apply this.
          If a track has timestamps then rotating the track is not allowed as it would otherwise break trackpoint time ordering.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Rename</guilabel></term>
      <listitem id="rename" xreflabel="Rename">
        <para>
          Rename a track according using the timestamp of the first point in a <ulink url="https://devhints.io/strftime">strftime format</ulink>.
          Use the <guibutton>Preview</guibutton> button to see what the result of applying this format will be.
          The default format is "%d %b %y %H:%M", however after a successful rename the format used is saved for subsequent reuse.
          To restore the default apply a blank format.
        </para>
        <para>
          This is not available for routes, as they have no timestamps.
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Export Track as GPX</title>
<para>
Version1.1+: This allows exporting the track as a GPX file by opening a file save dialog.
</para>
</section>

<section><title>Extend Track End</title>
<para>
Changes the current tool to add trackpoints to the end of the track.
</para>
</section>

<section><title>Extend Using Route Finder</title>
<para>
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.
</para>
</section>

<section><title>Upload</title>
  <variablelist>
    <varlistentry>
      <term><guilabel>Upload to GPS</guilabel></term>
      <listitem>
        <para>
          Same as the layer <link linkend="gps_upload">Upload to GPS</link> command, but only applies to the track.
        </para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term><guilabel>Upload to OSM</guilabel></term>
      <listitem>
        <para>
          Same as the layer <link linkend="osm_upload">Upload to OSM</link> command, but only applies to the track.
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</section>

<section><title>Use With Filter</title>
<para>
This selects the track to be used in the <link linkend="filter_with_track">Filter With <emphasis>Trackname</emphasis></link> feature.
</para>
<note>
<para>
This is not available on routes.
</para>
</note>
</section>

<section><title>Edit Trackpoint</title>
<para>
This opens the Trackpoint edit dialog. See <xref linkend="Trackpoint_edit"/>.
</para>
<note>
<para>
This is only enabled when a trackpoint is selected.
</para>
</note>
</section>

<section><title>Refine Route...</title>
<para>
This function allows one 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.
</para>
<note>
<para>
This is only available on routes.
</para>
</note>
</section>

<section><title>View Google Directions</title>
<para>
This option is only available on a track created using the Route Finder tool.
</para>
<para>
Launch a web browser to see the Google directions page which yielded the route.
</para>
<note>
<para>
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.
</para>
</note>
</section>

</section><!-- End Track Options -->

<section><title>Waypoint Sublayer Options</title>
<para>Repeats options available at the TrackWaypoint level, but only those for waypoints:</para>
<variablelist>
<varlistentry>
<term><guilabel>New Waypoint</guilabel></term>
<listitem><para>Same as the layer <link linkend="new_wp">New Waypoint</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>View All Waypoints</guilabel></term>
<listitem><para>Same as the layer <link linkend="wp_view_all">View All Waypoints</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Goto Waypoint</guilabel></term>
<listitem><para>Same as the layer <link linkend="wp_goto">Goto Waypoint</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Delete All Waypoints</guilabel></term>
<listitem><para>Same as the layer <link linkend="delete_all_waypoints">Delete All Waypoints</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Delete Waypoints from Selection</guilabel></term>
<listitem><para>Same as the layer <link linkend="delete_selection_waypoints">Delete Waypoints from Selection</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Delete Duplicate Waypoints</guilabel></term>
<listitem><para>Same as the layer <link linkend="delete_duplicate_waypoints">Delete Duplicate Waypoints</link></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>List Waypoints</guilabel></term>
<listitem><para>Opens a new dialog with the list. As described in the Aggregate layer <xref linkend="waypoint_list"/></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Export GPX File...</guilabel></term>
<listitem><para>
  Version1.11+: Opens a save dialog to select a filename to save just the visible waypoints of this layer in the GPX format.
</para></listitem>
</varlistentry>
</variablelist>
<para>Also gives other options for handling multiple items:</para>
<variablelist>
<varlistentry>
<term><guilabel>Sort</guilabel></term>
<listitem><para>Gives the ability to sort the items in the treeview alphabetically or by date.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Visibility</guilabel></term>
<listitem><para>Offers options to quickly control the visibility of all items within the sublayer, as per <xref linkend="vis_options"/></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Transform</guilabel></term>
<listitem>
<para>Options to set the altitude value from <xref linkend="DEM"/> data. Also see track <xref linkend="transform"/>.</para>
<para>An option to set the time from the comment field. First tries ISO8601 formats and then a fallback of a custom format, see "gpx_comment_time_format" in <xref linkend="misc_settings"/>.</para>
<para>An option to convert the (visible) waypoints into a track. The points will be ordered according to the layers Waypoint sort order property. Note that some information such as associated images, symbols, comments etc... are lost in this conversion.</para>
</listitem>
</varlistentry>
</variablelist>
</section>

<section id="WptProps"><title>Waypoint Properties</title>

<para>
This shows a dialog with detailed information for the (possibly new) waypoint. Many properties of the waypoint can set or changed here, such as the comment, the symbol used in drawing or the image (normally a photograph taken at this position) associated 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).
</para>
<para>
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.
</para>
<para>
Clicking on the time opens the time edit dialog from which the time can be adjusted (or added if the waypoint did not have a time).
When the waypoint has a time, right clicking on the button opens a menu from which there are options to copy the time value as text or remove the time value.
</para>
<note>
  <para id="LatLonInput" xreflabel="Lat/Lon Pair">
    The latitude entry can accept any text and will attempt to decode the text as a lat/lon pair.
    If successfully decoded then this will take precedence over the longitude value.
    In the case entering e.g. "54.32 -1.098", the latitude will become 54.32 and the longitude -1.098 (when the dialog is accepted).
    This takes a few various lat/lon format strings, including:
    <itemizedlist>
      <listitem><para>"12, 34": Commas are ignored</para></listitem>
      <listitem><para>"S12 W34": With cardinal indicators at begining</para></listitem>
      <listitem><para>"12 S 34 W": With cardinal indicators after (must have space between the number and letter)</para></listitem>
      <listitem><para>"12.34 56.67": DDD format</para></listitem>
      <listitem><para>"S034° 12.3456 W003° 45.6788": DMM format. Equals DDD "-34.20576 -3.76131"</para></listitem>
      <listitem><para>"S034° 12 34 W003° 45 54": DMS format. Equals DDD "-34.20944 -3.76500"</para></listitem>
    </itemizedlist>
  </para>
</note>
<figure>
<title>Waypoint Properties: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/WaypointProperties.png"/>
</screenshot>
</figure>
<figure>
<title>Waypoint Properties: Extra Tab</title>
<screenshot>
  <graphic format="PNG" fileref="figures/WaypointProperties-Extra.png"/>
</screenshot>
</figure>
<para>
  Waypoint proximity (alarm) values are supported. These will be exported in saving GPX files (provided the GPX Export is v1.1) according to the GPX Waypoint Extension schema (see <xref linkend="prefs_external"/>). The proximity area will be drawn on the display provided the <emphasis>Draw Waypoint Proximity</emphasis> in the layer properties is enabled.
</para>

</section><!-- WP Prop END -->

<section><title>Waypoint Operations</title>

<section><title>Goto</title>
<para>
This centers the viewport on the selected waypoint.
</para>
</section>

<section><title>Geotag Images...</title>
<para>
This opens the <link linkend="geotagging">Geotag Dialog</link> 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.
</para>
</section>

<section><title>Transform</title>
<para>
Offers a subset of the track <xref linkend="transform"/> utilities.
Setting the altitude from <xref linkend="DEM"/> data and Time from Comment methods are available.
</para>
</section>

<section><title>Visit Webpage</title>
<para>
If the waypoint's comment (or description) starts with <literal>http:</literal> then this option is available and allows launching a web browser to go to the webpage.
</para>
</section>

<section><title>Visit Geocache Webpage</title>
<para>
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.
</para>
</section>

<section><title>New Waypoint</title>
<para>
Same as the layer <link linkend="new_wp">New Waypoint</link>.
</para>
</section>

</section><!-- WP END -->

<section id="geotagging" xreflabel="Geotagging"><title>Version1.3+: Geotag Images</title>
<para>
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.
</para>
<para>
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.
</para>
<note>
<para>
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.
</para>
</note>
<para>
Various options allow control of how the geotagging process is performed:
</para>
<itemizedlist>
<listitem><para>Images - Add the images used for geotagging</para></listitem>
<listitem><para>Create Waypoints</para></listitem>
<listitem><para>Overwrite Existing Waypoints</para></listitem>
<listitem><para>Write EXIF</para></listitem>
<listitem><para>Overwrite Existing GPS Information</para></listitem>
<listitem><para>Keep File Modification Timestamp</para></listitem>
<listitem><para>Automatic Image Direction - Assumes the direction will be in line with the track heading</para></listitem>
<listitem><para>Interpolate Between Track Segments</para></listitem>
<listitem><para>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.</para></listitem>
<listitem><para>Image Time is Local - Are the timestamps in the image local time or otherwise in UTC.</para></listitem>
<listitem><para>Image Timezone - The timezone adjustment factor.</para></listitem>
</itemizedlist>
<para>
Typically timestamps in images are either in local time or UTC but there is no way of automatically knowing which; so you need to specify which is the case.
<emphasis>Image Time Offset</emphasis> is best used for accounting for camera's clock drift, so normally of the order of a few seconds or minutes.
Whereas <emphasis>Image Timezone</emphasis> is more for adjusting for a camera's timezone difference, or perhaps differences in your current timezone and the timezone the images where taken.
</para>
</section>

</section><!-- TRW Layer END -->

<section id="GPS" xreflabel="GPS"><title>GPS Layer</title>
<para>
The GPS layer is responsible for uploading and downloading GPS data from a GPS device via a serial port connection.
It uses <application>GPSBabel</application> in the background to perform the low level transfer.
Modern GPS devices don't support serial connections any more and typically expose a file system interface and you can simply use the standard File->Open and Export to GPX File methods to transfer data.
</para>
<para>
  This layer is also responsible for realtime GPS tracking using <ulink url="https://gpsd.gitlab.io/gpsd">GPSD</ulink>
</para>
<para>
Expand the GPS layer in the layers panel to see the two <xref linkend="TrackWaypoint"/> layers it
uses for uploading and downloading. To upload, download, or use
realtime tracking, right-click the GPS layer and click the appropriate
menu item.
</para>

<section><title>Download</title>
<para>
To download data from the GPS, right-click the GPS layer and click <guimenuitem>Download from GPS</guimenuitem>.
</para>
</section>

<section><title>Upload</title>
<para>
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 <guimenuitem>Upload to GPS</guimenuitem>.
</para>
</section>

<section><title>Realtime Tracking</title>
<para>
  You must put the correct information to connect to an instance of GPSD in the GPS Layer properties - Realtime Tracking Mode tab.
</para>
<para>
By default &appname; will automatically continually attempt to connect to GPSD using the specified host and port values,
otherwise if necessary use right-click on the layer and select <guimenuitem>Start Realtime Tracking</guimenuitem>.
</para>
<para>
  See <xref linkend="gpsd"/> for more detail.
</para>
</section>

<section><title>Empty <emphasis>Item</emphasis></title>
<para>
There are several options to quickly delete a subsection of data:
</para>
<itemizedlist>
<listitem><para>Empty Realtime</para></listitem>
<listitem><para>Empty Upload</para></listitem>
<listitem><para>Empty Download</para></listitem>
<listitem><para>Empty All</para></listitem>
</itemizedlist>
</section>

</section><!-- End GPS -->


<section id="Map" xreflabel="Map"><title>Map Layer</title>
<para>
This layer provides a single map resource, you may have multiple map layers but only top one (if enabled) will be visible (subject to the <xref linkend="Alpha"/> compositing property).
</para>
<para>
Some maps are continually improving over time (e.g. OpenStreetMap), on the other hand &appname; employs a caching mechanism to avoid redownloading data (see <xref linkend="dmapcache"/>).
However a forced refresh for the current view can be made via the <guilabel>Reload All Onscreen Maps</guilabel> option or <keycap>Ctrl+F5</keycap>.
</para>

<para id="cache_location" xreflabel="Cache Root Location">
The default root location for the disk map cache is searched for in this order (including the legacy locations), using the first existing directory location found to exist. Thus on upgrading &app; it will still continue to use the previous location if it is available.
</para>
<variablelist>
  <varlistentry>
    <term>Environment Override</term>
    <listitem><para><envar>$VIKING_MAPS</envar></para></listitem>
  </varlistentry>
  <varlistentry>
    <term>Global Map Directory</term>
    <listitem>
      <para><trademark>UNIX</trademark>: <filename>/var/cache/maps</filename></para>
      <para><trademark>Windows</trademark>: <filename>C:\VIKING-MAPS</filename></para>
      <para><trademark>Mac</trademark>: <filename>/Library/cache/Viking/maps</filename></para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Local Map Directory - Legacy - v1.8 and earlier</term>
    <listitem>
      <para><trademark>UNIX</trademark>: <filename>~/.viking-maps</filename></para>
      <para><trademark>Windows</trademark>: <filename>C:\Users\<replaceable>username</replaceable>\VIKING-MAPS</filename></para>
      <para><trademark>Mac</trademark>: <filename>/Library/Application Support/Viking/viking-maps</filename></para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Local Map Directory - Current - v1.9 onwards</term>
    <listitem>
      <para><trademark>UNIX</trademark>: <filename><envar>$XDG_CACHE_HOME</envar>/viking</filename> - (typically <filename>~/.cache/viking</filename>)</para>
      <para><trademark>Windows</trademark>: <filename>C:\Users\<replaceable>username</replaceable>\AppData\Local\Microsoft\Windows\INetCache\viking</filename></para>
      <para><trademark>Mac</trademark>: <filename>/Library/Caches/viking</filename></para>
    </listitem>
  </varlistentry>
</variablelist>

<para>
You can modify this directory default by setting an explicit value in the <xref linkend="prefs"/> or in <menuchoice><guimenu>Edit</guimenu><guisubmenu>Layer Defaults</guisubmenu></menuchoice> for all new Maps. Or set an explicit Map Directory value for the particular Map Layer in the <xref linkend="map_props"/>.
</para>

<note>
<para>
  If you've upgraded &app; to v1.9 and want it to use the new location, you need to perform these manual steps to ensure consistency in usage:
</para>
<orderedlist>
  <listitem>
    <para>
      Manually move the existing directory (when &app; is not running). e.g. in the command line: <command>mv -p ~/.viking-maps ~/.cache/viking-maps</command>
    </para>
  </listitem>
  <listitem>
    <para>
      Update your <emphasis>.vik files</emphasis> to use the new directory location.
One way would be to manually edit the files with a text editor to change the Map Layer setting from <command>directory=/some/dir/ --> directory=</command> as a blank entry will use the default.
      Otherwise if you open .vik file with &app; the maps may auto download and recreate the previous location, so even if you modify the map directory within &app; and save the .vik file, the next time you open &app; it would notice the old location exists (unless you remove it) and may use that in preference for new Map Layers.
    </para>
  </listitem>
  <listitem>
    <para>
      This location is also used by DEM files, so you need to update your <emphasis>.vik files</emphasis> appropriately use the new directory location of each file used.
  </para>
  </listitem>
  <listitem>
  <para>
    You should also modify any existing explicit Map Directory default in the <xref linkend="prefs"/> and in <menuchoice><guimenu>Edit</guimenu><guisubmenu>Layer Defaults</guisubmenu></menuchoice> (or at least ensure they are blank, in order to use the defaults).
  </para>
  </listitem>
  <listitem>
  <para>
    Finally you will need to fix any other absolute file references in .vik files if you have used files in the disk map cache location, such as Waypoint Images, Georef Images, External TrackWaypoint Layer references and so forth.
  </para>
  </listitem>
</orderedlist>
</note>

<para>
Also see <xref linkend="map_tool_dl"/> tool for use in conjunction with this layer.
</para>

<formalpara><title>Online Map Tile Providers</title>
<para>
You will need an open internet connection when you are downloading these following map types, but once downloaded they are available from the hard disk cache. When maps are avaliable from the disk cache it is much faster and can be used offline.
Inbuilt maps include various <ulink url="https://openstreetmap.org/">OpenStreetMap (OSM)</ulink> ones and more:
</para>
</formalpara>
<itemizedlist>
<listitem><para>Bing Aerial Maps (&appname; Version1.2+)</para></listitem>
<listitem>
<para><ulink url="https://opentopomap.org/about">OpenTopoMap</ulink></para>
</listitem>
<listitem><para>OpenStreetMap (Mapnik) - This is the default (&appname; Version1.11+)</para></listitem>
<listitem><para>OpenStreetMap (Cycle)</para></listitem>
<listitem><para>OpenStreetMap (Transport) (&appname; Version1.3+)</para></listitem>
<listitem><para>OpenStreetMap (Humanitarian) (&appname; Version1.5+)</para></listitem>
<listitem><para>NASA BlueMarble</para></listitem>
</itemizedlist>

<para>
&appname; can be configured to handle additional online map resources. See <xref linkend="extend_viking"/> for further detail.
</para>

<formalpara><title>Offline Map Tilesets</title>
<para>
Some map types supported are for on disk tile formats:
</para>
</formalpara>
<itemizedlist>
<listitem>
	<para>On Disk OSM Tile Format</para>
	<para>This is equivalent to any map set with <emphasis>OSM</emphasis> Cache Layput.</para>
</listitem>
<listitem>
  <para><ulink url="https://github.com/mapbox/mbtiles-spec">MBTiles File</ulink></para>
  <note>
    <para>&appname; only supports the <emphasis>Raster</emphasis> type (i.e. those containing image tiles - such as formats jpg or png) but not the vector <emphasis>pbf</emphasis> type.</para>
  </note>
</listitem>
<listitem>
  <para><ulink url="https://wiki.openstreetmap.org/wiki/Meta_tiles">OSM Metatiles</ulink></para>
  <note>
    <para>This file format is mostly aimed at being rendering cache feature and is <ulink url="https://en.wikipedia.org/wiki/Endianness">Endian</ulink> dependent.</para>
    <para>Thus to successfully view the file cache, the Metatile files and Viking must be of the same endian type (which they probably will be).</para>
  </note>
</listitem>
</itemizedlist>
<para>
Of course you need to have acquired or generated these tilesets yourself.
</para>

<section id="map_props"><title>Map Layer Properties</title>
<para>
Configurable properties:
</para>
<variablelist>
<varlistentry>
<term><guilabel>Map Type</guilabel></term>
<listitem>
	<para>The kind of map this layer displays.</para>
	<note><para>Map types are dependent on the current <xref linkend="projection"/> mode.</para></note>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Maps Directory</guilabel></term>
<listitem><para>Not applicable for MBTiles Map type since it is a single file.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Cache Layout</guilabel></term>
<listitem><para>Viking or OSM. See <xref linkend="dmapcache"/>. Only applies to maps from online tile providers.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Cache Expiry Age</guilabel></term>
<listitem>
  <para>For an existing tile on disk, the amount of time in days before the an attempt is made to contact the server to get a new version of the tile.</para>
  <para>Changing this value, you will increase or decrease the network load.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Map File</guilabel></term>
<listitem><para>Ony applicable for MBTiles Map type since it is a single file.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Alpha</guilabel></term>
<listitem>
	<para>Control the <xref linkend="Alpha"/> value for transparency effects.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Autodownload Maps</guilabel></term>
<listitem><para>This can be useful to turn off when you are not online to avoid pointless download requests or may be keep a map in a 'historical' state.
e.g. perhaps in case a current map rendering is broken.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Autodownload Only Gets Missing Maps</guilabel></term>
<listitem><para>Using this option avoids attempting to update already acquired tiles.
This can be useful if you want to restrict the network usage, without having to resort to manual control. Only applies when <emphasis>Autodownload Maps</emphasis> is on.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Zoom Level</guilabel></term>
<listitem><para>Determines the method of displaying map tiles for the current zoom level.
<emphasis>Viking Zoom Level</emphasis> uses the best matching level, otherwise setting a fixed value will always use map tiles of the specified value regardless of the actual zoom level.</para></listitem>
</varlistentry>
</variablelist>
</section><!-- Map Prop END -->


<section><title>Layer Operations</title>
<section><title>Download Missing Onscreen Maps</title>
<para>
This requests map tiles for areas of the viewport that do not currently have one.
</para>
</section>

<section><title>Download New Onscreen Maps</title>
<para>
This requests map tiles only if the maps are older than the Tile Age preference.
</para>
</section>

<section><title>Reload All Onscreen Maps</title>
<para>
Force a refresh of all visible map tiles.
</para>
</section>

<section><title>Download Maps in Zoom Levels</title>
<para>
This opens a dialog to enable requesting the download of maps for the region in the viewport over a specified number of Tiled Web Map zoom levels.
The download method type can be specified to help limit the number of requests.
</para>
<warning>
<para>
There are some inbuilt limits to prevent downloading large amounts of map tiles.
</para>
<para>
Please respect the usage policy of the tile set provider.
Such as <ulink url="https://operations.osmfoundation.org/policies/tiles/"><citetitle>OSM Tile Usage Policy</citetitle></ulink>.
</para>
</warning>
<para>
<figure>
<title>Maps Download Dialog: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Maps_download_region_dialog.png"/>
</screenshot>
</figure>
</para>
</section>

<section><title>Toggle Display of Cache Status</title>
<para>
  When enabled, a visual indication of the disk cache status of each tile will be shown.
  This will display a small coloured square at the top left of each map tile,
  with the colour representing the status.
</para>
<variablelist>
  <varlistentry>
    <term>No File: Red</term>
    <listitem>
        <para>No tile on disk exists for this zoom level.</para>
      <para>Note that &appname; will attempt to rescale higher and lower tiles for this zoom level (as in the example below), so there may be image shown.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Okay: Teal</term>
    <listitem>
      <para>Tile exists on disk and is within the cache expiry age.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Expired: Yellow</term>
    <listitem>
      <para>Tile exists on disk but is older than the cache expiry age.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Download Error: Dark Red</term>
    <listitem>
      <para>Issues were encountered in trying to retrieve latest version of the tile.</para>
    </listitem>
  </varlistentry>
</variablelist>
<para>
<figure>
<title>Cache Status Overlay: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Maps_Cache_Status_Overlay.png"/>
</screenshot>
</figure>
</para>
<para>
  If desired, the colours used for the disk map cache overlay indicators can be altered via the advanced configuration in <xref linkend="misc_settings"/>.
</para>
</section>

<section><title>About</title>
  <para>
    This displays a dialog with extra detail about the particular map - typically license information.
  </para>
</section>

<section><title>Debug Mode: Information</title>
  <para>
    This displays a dialog with extra informationa about the particular map - including the internal Id number used for this instance.
  </para>
</section>

<section><title>Debug Mode: Flush Map Memory Cache</title>
  <para>
    Flushes the memory map cache for this particular map only.
  </para>
</section>

</section>


</section><!-- End Maps -->

<section id="Aggregate" xreflabel="Aggregate"><title>Aggregate Layer</title>
<para>
This layer is a container layer to hold other layers. There is always an initial and controlling <emphasis>Top Layer</emphasis> that can not be removed but it can be renamed.
</para>
<para>
This layer type is useful for grouping other layers, especially <xref linkend="TrackWaypoint"/> layers, in whatever categories are relevant to you: such as by activity, location or date.
Here are some suggestions:
<itemizedlist>
<listitem><para>Hiking</para></listitem>
<listitem><para>Mountain Biking</para></listitem>
<listitem><para>Road Cycling</para></listitem>
<listitem><para>Car Trips</para></listitem>
<listitem><para>Sailing</para></listitem>
<listitem><para>Holidays</para></listitem>
<listitem><para>UK Points of Interest</para></listitem>
<listitem><para>USA Points of Interest</para></listitem>
<listitem><para>etc...</para></listitem>
</itemizedlist>
</para>
<para>
Thus one can have a list of all your tracks, but groups can be shown or not using the relevant layers visibility checkbox.
</para>

<section><title>Tracks Area Coverage</title>
<para>
Tracks Area Coverage (TAC) is a feature to highlight areas with track coverage.
It is based on OpenStreetMap style tiles - as an approximation to a grid square system.
The size of the area can be changed, which is linked to the OSM Zoom level,
such that a higher Zoom level gives a smaller physical area and so more tiles.
This can be used for general curiousity or perhaps to plan routes to visit areas previously unexplored.
</para>
<para>
The calculations are performed in the background when deemed necessary (e.g. loading in a new file) and can also be manually requested.
</para>
<para>
Note that Viking can be slow in drawing hundreds or more tracks but this analysis is relatively quick and the resulting drawing is much faster.
Thus ATM is it recommended to turn off the visibility of the tracks themselves for this type of usage.
</para>

<para>
<figure>
<title>Tracks Area Coverage: Example - Contiguous, Cluster, &amp; Max Square</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Viking-TAC.png"/>
</screenshot>
</figure>
</para>

<para>
<figure>
<title>Tracks Area Coverage: Example - New &amp; Consecutive Lines</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Viking-TAC-Lines.png"/>
</screenshot>
</figure>
</para>

<para>
A concept of ignoring <emphasis>unreachable</emphasis> tiles is supported. This allows marking individual tiles as inaccessible (e.g typically military use only, so no public access) so that the tile is still included for maximum square and clustering count purposes. These tiles are drawn in red on the viewport.
</para>
<para>
On startup &appname; attempts to load the file <filename>unreachable_tiles.txt</filename> in your <xref linkend="config_file_loc"/>.</para>
<para>
The file should contain a list of tiles in the format of 3 numbers, with each line being "OSM_ZOOM TILE_X_ID TILE_Y_ID". e.g.
</para>
<screen>
14 8116 5474
14 8117 5474
</screen>
<para>
Any lines starting with a '#', '!' or ';' are ignored as intended for comments.
A fuller example covering the UK is in <filename>/usr/share/viking/unreachable_tiles.txt</filename> or <filename>C:\Program Files\Viking\data\unreachable_tiles.txt</filename> according to the operating system and typical install locations. You may wish to copy this file into your &appname; home directory so that it is used.
</para>
<para>
To find TILE_X_ID and TILE_Y_ID : select a map. On menu -> Tools -> Download Map.
Right click on a tile and select "show tile information". 
<screen>
Source : http://tile.openstreetmap.org/14/8104/5465.png
</screen>
With zoom, X_ID and Y_ID
</para>

</section>

<section><title>Heatmap</title>
<para>
The heatmap is another feature to analyse areas with track coverage.
It must be manually requested via right click on the Aggregate layer and choosing from the menu <menuchoice><guimenu>Tracks Heatmap</guimenu><guisubmenu>Calculate</guisubmenu></menuchoice>.
The heatmap covers the current area displayed on the viewport.
</para>
<para>
The calculations are performed in the background as depending on the number of tracks, the heatmap options and the speed of the computer the calculation may take a little time.
If the viewport size is changed then the heatmap is automatically invalidated and removed.
Panning the display leaves the heatmap image only covering the area already calculated.
Zooming in and out scales the heatmap image appropriately, but the image may get removed if the scaling operation is likely to be too slow.
</para>

<para>
<figure>
<title>Heatmap: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Aggregate_heatmap.png"/>
</screenshot>
</figure>
</para>
</section>

<section><title>Layer Properties: Tracks Area Coverage</title>
<para>Offers basic controls whether it is enabled or not and includes the size of the tile.</para>
</section>

<section><title>Layer Properties: TAC Advanced</title>
<para>Controls subsets of TAC drawing are calculated and shown with their colour and opacity.</para>
<variablelist>
  <varlistentry>
    <term>Contiguous</term>
    <listitem>
      <para>Is formed from continuous chain of squares, with each contributing one having at least one common border with the group.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Cluster</term>
    <listitem>
      <para>Is formed from squares which are completely surrounded by other sqaures.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Max Square</term>
    <listitem>
      <para>Is formed from squares that contribute to a larger square area.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>New</term>
    <listitem>
      <para>Those that are newly (at least from the previous TAC calculation) found to contribute to the coverage.</para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term>Consecutive Lines</term>
    <listitem>
      <para>Squares that are consecutive in north/south and east/west directions.</para>
    </listitem>
  </varlistentry>
</variablelist>
<para>Note for Max square coverage, ATM it will only draw the first square encountered, although there may be more than one such area.</para>
<para>Note for Cluster coverage, ATM it will only draw the first cluster encountered, although there may be more than one such area.</para>
<para>Note for Consecutive Lines of Squares coverage, ATM it will only draw the first instance encountered, although there may be more than one such line.</para>
</section>

<section><title>Layer Properties: Heatmap</title>
<para>Offers controls over the heatmap image.</para>
<para>If there is an existing heatmap on display then changing these values and selecting <guibutton>Apply</guibutton> will cause the heatmap to be recalculated with the new settings.</para>
</section>

<section><title>Layer Properties: General</title>
<para>General options that apply to Aggregate layers.</para>
<variablelist>
  <varlistentry>
    <term>Load External Layers</term>
    <listitem>
      <para>
        Version1.11+: Allows control over whether external layers are automatically loaded when the .vik file is loaded.
        By default external layers are only loaded when needed for display (primarily via selection on the left hand panel).
        However, they are not included (until loaded) in various statistics or Track Coverage Area.
        Thus, this setting ensures they are fully loaded (at the expense of taking the time to process these files);
        rather than having to manually select them or manually invoke the <guilabel>Load External Layers</guilabel> option.
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</section>

<section><title>Layer Operations</title>
<para>
The following are available on Aggregate Layers:
</para>

<section><title>New Layer</title>
<para>
Add a new layer of the selected type.
</para>
</section>

<section><title>Visibility Options</title>
<para>
This offers a quick way to set all the visibilities of each item within the aggregate, rather than having to change each one individually.
<variablelist>
<varlistentry>
<term><guilabel>Show All</guilabel></term>
<listitem><para>Ensures all items are set to be visible.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Hide All</guilabel></term>
<listitem><para>Ensures all items are set to be invisible. This is useful for then turning on single items afterwards so the display is not cluttered.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Toggle</guilabel></term>
<listitem><para>Inverts the visibility status of each item.</para></listitem>
</varlistentry>
</variablelist>
</para>
</section>

<section><title>View - All TrackWaypoint Layers</title>
<para>
Automatically move the viewport and select the best zoom level to see all such <xref linkend="TrackWaypoint"/> layers within this aggregate.
</para>
</section>

<section id="sort_items" xreflabel="Sort"><title>Sort</title>
<para>
The list within the treeview can be sorted.
</para>
<para>
Alphabetical and Date sorts are available.
</para>
<note>
<para>
Generally it is not useful to sort the Top most layer. Sort is mainly intended for Aggregate groups of <xref linkend="TrackWaypoint"/> layers.
</para>
</note>
</section>

<section id="track_list" xreflabel="Track List"><title>Track List</title>
<para>
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.
You can also rearrange the columns via dragging the column header to the new location.
</para>
<para>
This table may be invoked from a variety of different layer levels and will then list only the relevant tracks (and/or routes).
<variablelist>
<varlistentry>
<term>Aggregate Layer</term>
<listitem><para>Lists Tracks and Routes and the <xref linkend="TrackWaypoint"/> Layer they are in</para></listitem>
</varlistentry>
<varlistentry>
<term>TrackWaypoint Layer</term>
<listitem><para>Lists Tracks and Routes</para></listitem>
</varlistentry>
<varlistentry>
<term>TrackWaypoint Track sublayer</term>
<listitem><para>Lists Tracks only</para></listitem>
</varlistentry>
<varlistentry>
<term>TrackWaypoint Route sublayer</term>
<listitem><para>Lists Routes only</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
<figure>
<title>Track List Dialog: Example</title>
<blockquote>
<para>
This is showing all tracks and routes (although there are no actual routes here!) in multiple <xref linkend="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!
</para>
</blockquote>
<screenshot>
  <graphic format="PNG" fileref="figures/LayersTracksList.png"/>
</screenshot>
</figure>
</para>
<para>
Hovering the mouse over an entry will show a tooltip of the comment or description if it is available.
</para>
<para>
Each entry in the track list can be selected and on mouse right click offers these options:
<variablelist>
<varlistentry>
<term><guilabel>View</guilabel></term>
<listitem><para>Move the viewport to the area of the item and highlight it.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Statistics</guilabel></term>
<listitem><para>Opens the Properties dialog on the <xref linkend="track_statistics"/> tab. Note this will close the track list dialog.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Copy Data</guilabel></term>
<listitem><para>Copy the data fields as text.</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
If multiple entries are selected the only right click option is <emphasis>Copy Data</emphasis>.
This copies the individual data fields as plain text separated by tab characters, ideal for pasting into other applications in particular spreadsheet programs.
Note that the order of the fields copied is the default column ordering (irrespective to how they may have been rearranged).
</para>
</section>

<section id="waypoint_list" xreflabel="Waypoint List"><title>Waypoint List</title>
<para>
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.
You can also rearrange the columns via dragging the column header to the new location.
</para>
<para>
This table may be invoked from a variety of different layer levels and will then list only the relevant waypoints.
<variablelist>
<varlistentry>
<term>Aggregate Layer</term>
<listitem><para>Lists Waypoints and the <xref linkend="TrackWaypoint"/> Layer they are in</para></listitem>
</varlistentry>
<varlistentry>
<term>TrackWaypoint Layer</term>
<listitem><para>Lists Waypoints</para></listitem>
</varlistentry>
<varlistentry>
<term>TrackWaypoint Waypoint sublayer</term>
<listitem><para>Lists Waypoints</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
<figure>
<title>Waypoint List Dialog: Example</title>
<blockquote>
<para>
This was invoked on a <xref linkend="TrackWaypoint"/> layer and shows all waypoints from that single layer. It has been sorted by the symbols.
</para>
</blockquote>
<screenshot>
  <graphic format="PNG" fileref="figures/WaypointsList.png"/>
</screenshot>
</figure>
</para>
<para>
Hovering the mouse over an entry will show a tooltip of the description if it is available.
</para>
<para>
Each entry in the list can be selected and on mouse right click offers these options:
<variablelist>
<varlistentry>
<term><guilabel>View</guilabel></term>
<listitem><para>Move the viewport to the area of the item and highlight it.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Properties</guilabel></term>
<listitem><para>This will open the properties dialog. Note this will close the waypoint list dialog.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Show Picture</guilabel></term>
<listitem><para>If enabled, this will open the associated image in an external Image Viewer program.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Copy Data</guilabel></term>
<listitem><para>Copy the data fields as text.</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
If multiple entries are selected the only right click option is <emphasis>Copy Data</emphasis>.
This copies the individual data fields as plain text separated by tab characters, ideal for pasting into other applications in particular spreadsheet programs.
Note that the order of the fields copied is the default column ordering (irrespective to how they may have been rearranged).
</para>
</section>

<section id="vis_options" xreflabel="Visibility Options"><title>Visibility Options</title>
<para>
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.
<variablelist>
<varlistentry>
<term><guilabel>Show All</guilabel></term>
<listitem><para>Ensures all items are set to be visible.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Hide All</guilabel></term>
<listitem><para>Ensures all items are set to be invisible. This is useful for then turning on single items afterwards so the display is not cluttered.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Toggle</guilabel></term>
<listitem><para>Inverts the visibility status of each item.</para></listitem>
</varlistentry>
</variablelist>
</para>
</section>

<section><title>Delete - Selection</title>
<para>
This opens a dialog to select layers from this Aggregate layer to delete.
</para>
</section>

<section id="search_date" xreflabel="Search by Date"><title>Search by Date</title>
<para>
This opens calendar dialog to select a date to search by within this Aggregate layer.
The first item that is found on that date will be selected.
Tracks are searched first in preference over waypoints.
</para>
</section>

<section id="agg_stats" xreflabel="Statistics"><title>Statistics</title>
<para>
This opens a dialog to display various statistics about all tracks contained within this Aggregate layer.
</para>
<figure>
<title>Statistics Dialog: Totals</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Aggregate_statistics.png"/>
</screenshot>
</figure>
<note>
  <para>
    This currently generates a simplified <ulink url="https://en.wikipedia.org/wiki/Arthur_Eddington#Eddington_number_for_cycling">Eddington number</ulink>.
    In that a per track length value is used, rather than trying to work out a length per day.
    (i.e. doesn't combine multiple tracks for a single day or split very long tracks into days).
    The Eddington number is in the current Unit distance <xref linkend="prefs"/>.
  </para>
</note>
<figure>
<title>Statistics Dialog: Years</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Aggregate_statistics_years.png"/>
</screenshot>
</figure>
<para>
  Each column can be sorted by clicking on the relevant column header.
</para>
<para>
  The right click menu offers an option to copy all the data as text in a CSV style format (using a tabbed separator).
</para>
<para>
  Selecting a year will update the information in the Months tab.
</para>
<figure>
<title>Statistics Dialog: Months</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Aggregate_statistics_months.png"/>
</screenshot>
</figure>
<para>
  Each column can be sorted by clicking on the relevant column header.
</para>
<para>
  The right click menu offers an option to copy all the data as text in a CSV style format (using a tabbed separator).
</para>
<para>
  The right click menu offers an option to show the <xref linkend="track_list"/> for the relevant month.
</para>
</section>

<section><title>File Options</title>
<para>
Offers methods to manage loading and exporting to/from this specific Aggregate layer.
</para>
<variablelist>
<varlistentry>
<term><guilabel>Load External Layers</guilabel></term>
<listitem>
<para>
Using this forces External Layers in this Aggregate Layer to be loaded and so contribute to analysis, as otherwise they are loaded only when they are displayed or selected.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Open File as External Layer...</guilabel></term>
<listitem>
<para>This opens a dialog to select files to <xref linkend="open_external"/> within this Aggregate Layer.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Save Layer As...</guilabel></term>
<listitem>
<para>This opens a dialog to choose a name and location for a new Viking file containing data just this Aggregate Layer.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Append File...</guilabel></term>
<listitem>
<para>This opens a dialog to select files to load within this Aggregate layer.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Export As GPX...</guilabel></term>
<listitem>
<para>This opens a dialog to choose a name and location for a new GPX file from all visible <xref linkend="TrackWaypoint"/> layers in this Aggregate Layer into a single GPX file.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Export via GPSBabel...</guilabel></term>
<listitem>
  <para>This opens a dialog to choose options for the export using <application>GPSBabel</application>.
    Internally it converts all the geo-data in the Aggregate layer into a single temporary GPX file for use in exporting to whatever format you choose.</para>
  <para>It is only available if <application>GPSBabel</application> is detected.</para>
</listitem>
</varlistentry>
</variablelist>
</section>

<section><title>Tracks Area Coverage</title>
<para>
  Offers methods related to Tracks Area Coverage.
</para>
<variablelist>
  <varlistentry>
    <term><guilabel>Calculate</guilabel></term>
    <listitem>
      <para>
        Start a new TAC calculation.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term><guilabel>Increase/Decrease</guilabel></term>
    <listitem>
      <para>
        Changes the TAC square size appropriately and performs a recalculation with the new value.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term><guilabel>Goto</guilabel></term>
    <listitem>
      <para>
        Even though the analysis of squares have a variance of colours, it may not be obvious where they are - especially if outside the current viewport.
        Thus these options recenter the viewport on the center of the selected analysis type.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term><guilabel>Remove</guilabel></term>
    <listitem>
      <para>
        This clears the Tracks Area Coverage information, thus no grid colouring will be displayed.
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</section>

<section><title>Tracks Heatmap</title>
<para>
  Offers methods related to the Heatmap.
</para>
<variablelist>
  <varlistentry>
    <term><guilabel>Calculate</guilabel></term>
    <listitem>
      <para>
        Start a new heatmap calculation for current area displayed on the viewport.
      </para>
    </listitem>
  </varlistentry>
  <varlistentry>
    <term><guilabel>Remove</guilabel></term>
    <listitem>
      <para>
        Clear the heatmap from the display.
      </para>
    </listitem>
  </varlistentry>
</variablelist>
</section>

</section><!-- End Layer Operations -->
</section><!-- End Agg -->

<xi:include href="dem_layer.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<xi:include href="georef_layer.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<xi:include href="geoclue_layer.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<xi:include href="mapnik_rendering_layer.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<section id="Coordinate" xreflabel="Coordinate"><title>Coordinate Layer</title>
<para>
This layer is allows drawing of grid lines on the viewport.
</para>
</section><!-- End Coord -->


<section id="tools" xreflabel="Tools"><title>Tools</title>
<para>
&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 <emphasis>Select</emphasis>. You can return to the default mode by pressing <keycap>Escape</keycap>. The default mode can be changed in <xref linkend="misc_settings"/>.
</para>
<para>
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.
</para>
<para>
<keycap>Scroll</keycap>: zoom in and out keeping the mouse over same location
</para>
<para>
<keycap>Ctrl-scroll</keycap>: pan north-south (also <keycap>Ctrl-up</keycap>, <keycap>Ctrl-down</keycap>)
</para>
<para>
<keycap>Shift-scroll</keycap>: pan east-west (also <keycap>Ctrl-left</keycap>, <keycap>Ctrl-right</keycap>)
</para>
<para>
<keycap>Ctrl-shift-scroll</keycap>: zoom in and out, without changing the center (also <keycap>Ctrl+</keycap>, <keycap>Ctrl-</keycap>)
</para>
<para>
<keycap>Middle-click</keycap>: make the clicked point on the map the center
</para>
<para>
<keycap>Middle-click</keycap> and drag: pan
</para>
<para>
Also see <xref linkend="prefs_advanced"/> for options that affect the scrolling behaviour.
</para>
<para>
  When any of the primary window tools is active (Select, Pan, Zoom or Ruler), the viewport can be moved by pressing the arrow keys: <keycap>Up</keycap>, <keycap>Left</keycap>, <keycap>Right</keycap> and <keycap>Down</keycap>.
</para>

<section id="selecttool" xreflabel="Select"><title>Select (Version1.9+)</title>
<para>
This is the default mode of operation for &appname;.
</para>
<para>
This mode can be entered by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/select_18.png"/></guiicon>
</para>
<para>
The select tool allows one to choose an item, discard the selection of an existing item or to move the viewport.
To select an item (waypoint, track or route) left click on it (or reasonably near) in the viewpoint.
ATM to select a track one must actually click on a trackpoint, which is also selected.
To deselect an item simply left click away from any item.
</para>
<para>
To move the viewport hold the left mouse button down whilst moving the mouse pointer around (as per the specific Pan mode).
Also if <keycap>Right Alt</keycap> (or <trademark>Windows</trademark> <keycap>Left Alt</keycap>) is held down then the item selection/deselection is skipped and goes straight into pan mode; this may be useful if the item selection process is noticeably slow (and hence can be bypassed) or avoiding accidental deselection of the item of interest.
</para>
<para>
Once an item (waypoint or trackpoint) is selected it can be moved. The item must be clicked on again in order to start moving the it, this is to prevent accidental movement of item in the initial selection.
If <keycap>Ctrl</keycap> or <keycap>Shift</keycap> is held down at the same time, it will jump the item position to a nearby existing trackpoint or waypoint respectively.
Note that whole tracks cannot be moved.
</para>
<para>
  When a trackpoint is selected pressing <keycap>Left</keycap> or <keycap>Right</keycap> moves to the previous or next trackpoint respectively.
</para>
<para>
  <keycap>[</keycap> or <keycap>Keypad-</keycap> inserts a point before the selected trackpoint, whereas
  <keycap>]</keycap> or <keycap>Keypad+</keycap> inserts a point after the selected trackpoint.
</para>
<para>
  <keycap>Ctrl+d</keycap> will delete the selected trackpoint or waypoint without any additional confirmation of the action. Since there is no undo system - this shortcut is delibrately a two key operation.
</para>
<para>
  Currently these keyboard shortcuts are not configurable.
</para>
<para>
  By default double click zooming is disabled - see <xref linkend="prefs_advanced"/> to enable it.
Double clicking the left mouse button will zoom the map in.
<keycap>Shift</keycap> + double clicking the left mouse button will zoom the map out.
Double clicking the right mouse button will also zoom the map out.
</para>
<para>
This mode can also be entered by the keyboard shortcut <keycap>Ctrl+Shift+C</keycap> or now more simply just <keycap>s</keycap>.
</para>
</section>

<section id="pantool" xreflabel="Pan"><title>Pan</title>
<para>
This mode is entered by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/mover_22.png"/></guiicon>
</para>
<para>
Pan moves the viewpoint. A single click centers the viewport at that point, whereas click and drag dynamically moves the view around.
</para>
<para>
This mode can also be entered by the keyboard shortcut <keycap>Ctrl+Shift+P</keycap> or now more simply just <keycap>p</keycap>.
</para>
<para>
The double click behaviour is the same as in the Select mode described above (i.e. zooms in or out), however it is always enabled.
</para>
</section>

<section id="zoomtool" xreflabel="Zoom"><title>Zoom</title>
<para>
This mode is entered by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/zoom_18.png"/></guiicon>
</para>
<para>
Zooms in and out on the clicked part of the map or by the selected area.
</para>
<para>
This mode can also be entered by the keyboard shortcut <keycap>Ctrl+Shift+Z</keycap> or now more simply just <keycap>z</keycap>.
</para>
<para>
<keycap>Ctrl</keycap> + left or right click: Zoom in/out and center the map on the clicked location
</para>
<para>
<keycap>Shift</keycap> (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.
</para>
<para>
<keycap>Shift</keycap> + left click button: Jump Zoom In by up to factor of 3 standard zooms.
</para>
<para>
<keycap>Shift</keycap> + right click button: Jump Zoom Out by up to factor of 3 standard zooms.
</para>
</section>

<section id="rulertool" xreflabel="Ruler"><title>Ruler</title>
<para>
This mode is entered by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/ruler_18.png"/></guiicon>
</para>
<para>
The ruler is used to measure either:
</para>
<itemizedlist>
<listitem>
<para>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 <emphasis>freeze</emphasis> the ruler at that point.
</para>
</listitem>
<listitem>
<para>An area: <keycap>Shift</keycap> (and hold) + left mouse button: Draws a bounding box area. Area values are shown in the statusbar and on the viewport.
Releasing the mouse button will <emphasis>freeze</emphasis> the area at that point.
The viewport label option is controlled by <xref linkend="prefs_advanced"/>.
</para>
</listitem>
</itemizedlist>
<para>
This mode can also be entered by the keyboard shortcut <keycap>Ctrl+Shift+U</keycap> or now more simply just <keycap>r</keycap>.
</para>
</section>

<section id="trw_tools"><title>TrackWaypoint Layer Tools</title>
<para>
You must have a <xref linkend="TrackWaypoint"/> Layer selected to use these tools.
</para>
<section id="createwptool" xreflabel="Create Waypoint"><title>Create Waypoint</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/addwp_18.png"/></guiicon>
</para>
<para>
Left click will open the new waypoint dialog (see <xref linkend="WptProps"/>) using the specified position.
</para>
</section>

<section id="track_edit" xreflabel="Edit Track"><title>Create/Edit Track</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/addtr_18.png"/></guiicon>
</para>
<para>
General track edit/create tool.
The first left-click will create a new track and you will be asked to enter a name for the track (unless the Track Creation setting is configured to disable this, see <xref linkend="prefs_advanced"/>).
It will enter into 'extend track mode', with the virtual track extension shown as a dashed line and display of the distance to the cursor position;
subsequent left-clicks will add new trackpoints to the end of track.
</para>
<para>
If <keycap>Shift</keycap> is held, the track will be joined to an existing track at the point selected.
When a track is selected but not in 'extend track mode' and <keycap>Shift</keycap> is held,
the track will be split at the nearby trackpoint and enter into 'extend track mode' from that point.
</para>
<para>
  Alternatively, if <keycap>Ctrl</keycap> is held, a new trackpoint will be inserted into track between the nearest trackpoints.
  Note that this method is experimental for v1.11 and may not insert the trackpoint at the desired sequence position within the track.
</para>
<para>
Right click or <keycap>Backspace</keycap>: remove the last point at the end of track. i.e. This does not remove the point just added via the insert method.
</para>
<para>

</para>
<para>
Double click or <keycap>Escape</keycap>: to finish track creation.
Finishing the track is also available via the right click <xref linkend="TrackWaypoint"/> and track menus.
</para>
<para>
One must finish the current track to be able to create another track.
</para>
</section>

<section id="route_edit" xreflabel="Edit Route"><title>Edit Route</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/vik_new_route_18.png"/></guiicon>
</para>
<para>
This operates in exactly the same way as the <link linkend="track_edit">Edit Track</link> above.
</para>
<para>
One must finish the current route to be able to create another route.
</para>
<para>
One can switch between the <link linkend="route_edit">Edit Route</link> and <link linkend="route_finder">Route Finder</link> tools while editing routes.
</para>
</section>

<section id="route_finder" xreflabel="Route Finder"><title>Create Route Using the Route Finder</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/route_finder_18.png"/></guiicon>
</para>
<para>
Requires an internet connection.
Left click to create a new trackpoint.
If it's the initial trackpoint you will be asked to enter a name for the route, otherwise the default routing engine will be queried to find a route to the new trackpoint.
Right click or <keycap>Backspace</keycap>: remove the last added route.
</para>
<para>
Double click or <keycap>Escape</keycap>: to finish route creation.
Finishing the track is also available via the right click <xref linkend="TrackWaypoint"/> and track menus.
</para>
<para>
One must finish the current route to be able to create another route.
</para>
<para>
One can switch between the <link linkend="route_edit">Edit Route</link> and <link linkend="route_finder">Route Finder</link> tools while editing routes.
</para>
</section>

<section id="splitter" xreflabel="Splitter"><title>Track Splitter</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/splitter_18.png"/></guiicon>
</para>
<para>
Use this tool to split a track or route.
After enabling the tool, click on the track/route point of the track/route at the position where you want the split to occur.
</para>
</section>

<section><title>Edit Waypoint</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/edwp_18.png"/></guiicon>
</para>
<para>
Left Click/drag: select/move a waypoint.
If <keycap>Ctrl</keycap> is held at the same time, it will jump the waypoint position to a nearby existing trackpoint.
If <keycap>Shift</keycap> is held at the same time, it will jump the waypoint position to a nearby existing waypoint.
</para>
<para>Right-click on waypoint: opens a menu with waypoint actions (the
same menu accessed by right-clicking the waypoint in the layers panel)
</para>
</section>

<section><title>Edit Trackpoint</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/edtr_18.png"/></guiicon>
</para>
<para>
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 <keycap>Ctrl</keycap> is held at the same time, it will jump the new trackpoint position to a nearby existing trackpoint.
</para>
<section id="Trackpoint_edit" xreflabel="Edit Trackpoint Dialog"><title>Edit Trackpoint Dialog</title>
<para>
Editing options in the Trackpoint Edit dialog include:
<itemizedlist>
<listitem><para>Edit the trackpoint name</para></listitem>
<listitem><para>Changing raw lat/long position, altitude and time</para></listitem>
<listitem><para>Forward (go to the next trackpoint)</para></listitem>
<listitem><para>Back (go to the previous trackpoint)</para></listitem>
<listitem><para>Delete</para></listitem>
<listitem><para>Insert. Inserts a point halfway to next trackpoint</para></listitem>
<listitem><para>Split. <xref linkend="trkpt_split"/></para></listitem>
</itemizedlist>
</para>
<para>
Several fields are read only for reference purposes, values are shown if the trackpoint has such information:
<itemizedlist>
<listitem><para>Speed and course.</para></listitem>
<listitem><para>'Between' values: Speed, Time Difference and Distance Difference. When moving between trackpoints (via the Back and Forward buttons) these values are calculated.</para></listitem>
<listitem>
  <para>GPS precision factors.</para>
  <para>
    For further detail see <ulink url="https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation)">DOP on Wikipedia</ulink>.
    <itemizedlist>
      <listitem><para>VDOP: Vertical Dilution Of Precision</para></listitem>
      <listitem><para>HDOP: Horizontal Dilution Of Precision</para></listitem>
      <listitem><para>PDOP: Position Dilution Of Precision</para></listitem>
    </itemizedlist>
  </para>
</listitem>
</itemizedlist>
</para>
<para>
<figure>
<title>Trackpoint Edit Dialog: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/Trackpoint_edit_dialog.png"/>
</screenshot>
</figure>
One must have been going downhill here to get a reasonable speed by bicycle!
</para>
</section>
</section>

<section><title>Show Picture</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/showpic_18.png"/></guiicon>
</para>
<para>
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 <xref linkend="prefs_external"/>
</para>
</section>

</section>

<section id="georef_tools"><title>Georef Map Layer Tools</title>
<para>
You must have a <xref linkend="GeoRef"/> Map Layer selected to use these tools.
</para>
<section><title>Georef zoom</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/geozoom_18.png"/></guiicon>
</para>
<para>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.
</para>
</section>

<section><title>Georef move</title>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/geomove_18.png"/></guiicon>
</para>
<para>
Drag to move the georeferenced map.
</para>
</section>
</section>

<section id="map_tool_dl" xreflabel="Map Download"><title>Map Download</title>
<para>
You must have a <xref linkend="Map"/> Layer selected to use this.
</para>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/mapdl_18.png"/></guiicon>
</para>
<para>
Click to download a single tile. Drag to download tiles in the dragged rectangle area.
</para>
<para>
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:
</para>
<para>
<variablelist>
<varlistentry>
<term>Bad</term>
<listitem><para>Only if the tile is corrupt in some way or missing, then this will download a new copy</para></listitem>
</varlistentry>
<varlistentry>
<term>New</term>
<listitem><para>Refresh the tile according to the disk map cache and if the server has a newer version</para></listitem>
</varlistentry>
<varlistentry>
<term>All</term>
<listitem><para>Redownload the tile</para></listitem>
</varlistentry>
</variablelist>
</para>
<formalpara><title>Delete Map Tiles</title>
  <para>
    This removes this specific cached tile(s) from disk (and memory).
    Hence allowing fine grained control, which can be useful such as in bypassing the normal tile age cache check
     (and then induce a download for this tile) to get the latest tile.
  </para>
</formalpara>
<formalpara><title>Map Tile Information</title>
<para>
By right clicking on viewport and selecting <guimenu>Show Tile Information</guimenu> you can see the tile properties of this location for the current <xref linkend="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.
</para>
</formalpara>
<para>
<figure>
<title>Map Tile Info Dialog: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/map_tile_info_dialog.png"/>
</screenshot>
</figure>
This is using MapQuest at &appname; zoom level 128 over the Isle of Wight, UK.
</para>
</section>

<section id="dem_tool_dl"><title>DEM Download</title>
<para>
You must have a <xref linkend="DEM"/> Layer selected to use this.
</para>
<para>
Enable this tool by clicking on the toolbar icon: <guiicon><inlinegraphic fileref="figures/demdl_18.png"/></guiicon>
</para>
<para>
Click to download and import a DEM file.
</para>
<formalpara><title>DEM File Information</title>
<para>
By right clicking on viewport and selecting <guimenu>Show DEM File Infomation</guimenu> 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.
</para>
</formalpara>
<para>
<figure>
<title>DEM File Info Dialog: Example</title>
<screenshot>
  <graphic format="PNG" fileref="figures/DEM_file_info_dialog.png"/>
</screenshot>
</figure>
This is for block 51N, 003W - covering Bristol in the UK.
</para>
<note>
  <para>
    The Source URL is generated from the current configuration settings;
    it is not necessarily the URL that was used to acquire the DEM file, as that information is not saved.
  </para>
</note>
</section>

<section><title>Webtools</title>
<para>
Many services are available only via a web browser (Google Maps, OpenStreetMap editors, etc.).
</para>
<para>
Jumping from &app; to such service can become annoying.
</para>
<para>
&appname; allows you to open such service directly at the position currently viewed in &app;.
</para>
<para>
This feature is called <guilabel>Webtools</guilabel>. It is also known as External Tools.
</para>
</section>

</section>

<!-- Preferences -->
<section id="prefs" xreflabel="Preferences"><title>Preferences</title>
<section><title>General</title>
<section><title>Localisation</title>
<para>You can select units displayed by &appname; to best fit your usage.</para>
<figure>
<title>Properties dialog: units part</title>
<screenshot>
  <graphic format="PNG" fileref="figures/properties_units.png"/>
</screenshot>
</figure>
<para>Concerning degrees, you can select the way to display them:
<variablelist>
<varlistentry>
<term>DDD</term><listitem><para>decimal degree</para></listitem>
</varlistentry>
<varlistentry>
<term>DMM</term><listitem><para>partial sexagesimal display: degrees, minutes and decimal part of minutes</para></listitem>
</varlistentry>
<varlistentry>
<term>DMS</term><listitem><para>sexagesimal display: degrees, minutes and seconds</para></listitem>
</varlistentry>
</variablelist>
</para>
<figure>
<title>Properties dialog: degree display options</title>
<screenshot>
  <graphic format="PNG" fileref="figures/properties_degree.png"/>
</screenshot>
</figure>
</section>
<section><title>Waypoint Icon Size</title>
<para>An option exists to control the icon (symbol) size used for waypoints
</para>
</section>
<section><title><emphasis>Home</emphasis> Default Location: Latitude and Longitude</title>
<para>You can set the <emphasis>Home</emphasis> location directly by inputting the latitude and longitude in decimal degrees.
</para>
</section>
<section><title>Default Zoom Level</title>
<para>An option to set the default <xref linkend="zoom"/>.
</para>
</section>
<section><title>Time Display</title>
<para>This controls the reference timezone that times are shown in.</para>
<para><emphasis>Locale</emphasis> is the current user's system preference. This was how all times were shown up to version 1.5.</para>
<para><emphasis>World</emphasis> will attempt to determine the timezone at an object's position.</para>
<para><emphasis>UTC</emphasis> enforces this standard timezone.</para>
</section>
<section><title>Tile's age</title>
<para>This age is used as the default for the <xref linkend="Map"/> layers disk cache expiry age check.</para>
</section>
<section><title>Default map layer directory</title>
<para>This property sets the default directory of the tiles disk cache.
This value is used when you create a new <xref linkend="Map"/> layer.
</para>
<para>You are still able to change this value in each map layer properties.</para>
</section>
<section><title>Map Cache Memory Size</title>
<para>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.
</para>
</section>
</section>

<section id="prefs_external" xreflabel="Export/External Preferences"><title>Export/External</title>
<section><title>KML Export Units</title>
<para>Allows setting the units used when saved as the KML file type, such as Metric or Statue units</para>
</section>
<section><title>KML Export Track</title>
<para>Controls the whether the &lt;Track&gt; tag is used in the KML file. If not on then tracks are only saved as LineStrings.</para>
</section>
<section><title>KML Export Points</title>
<para>Controls the whether placemarks are created for every track or route point.</para>
<tip><para>If more control is required over the export then use <menuchoice><guimenu>Export Layer</guimenu><guisubmenu>Export via GPSBabel</guisubmenu></menuchoice> to manually specify the save options</para></tip>
</section>
<section><title>GPX Track Order</title>
<para>
	Other software may display tracks in a particular order (often the order saved into the file).
	This allows you to control the order they are saved when exporting to a GPX file.
</para>
</section>
<section><title>GPX Waypoint Symbols</title>
<para>Some GPS devices require waypoint symbols to be in a particular case.</para>
<para>E.g. On a Garmin Oregon 450 they must be in <emphasis>Title Case</emphasis> to be recognized.</para>
</section>
<section><title>GPX Creator</title>
<para>If not blank, then this setting overrides the default internal value that is used when writing to a GPX file.</para>
</section>
<section><title>GPX Waypoint Extension</title>
  <para>When waypoints are edited, particularly for the Proximity Alarm option, then the GPX1.1 properties will be updated using the specified schema. This may be important for compatibility with other programs/devices.</para>
  <para>For example, old Garmin MapSource software created files in the GPX Extension v3 style, whereas the Garmin Etrex20x devices work with the information in Waypoint Extension v1 style. Latest versions of Garmin Basecamp create files with both styles.</para>
  <para>Thus the <emphasis>All</emphasis> option is the default for maximum likelihood of capability as it also writes information in both styles.</para>
</section>
<section><title>Image Viewer (Not Windows)</title>
<para>Allows setting the program used to view images associated with Waypoints.</para>
<para>By default this is set to <application>xdg-open</application> which should open the system's default image viewer, however this can be overridden with this setting.</para>
<para>Note: for Windows systems, viewing images associated with Waypoints always uses the system's default image viewer.</para>
</section>
<section><title>External GPX programs</title>
<para>Allows setting the programs invoked via the <xref linkend="TrackWaypoint"/> Layer menu <menuchoice><guimenu>Export Layer</guimenu><guisubmenu>Open With 'program'</guisubmenu></menuchoice></para>
<para>Two options are given so that it can be configured for various uses such as:</para>
<itemizedlist>
<listitem><para>An OSM editor (default)</para></listitem>
<listitem><para>Some other user defined program</para></listitem>
</itemizedlist>
</section>
<section><title>GPSBabel</title>
<para>This allows setting the specific location of GPSBabel.</para>
<para>&appname; will need to be restarted for this setting to take effect.</para>
</section>
<section><title>Auto Read World Files</title>
<para>If this is on, when a new image is selected for the GeoRef layer then the associated world file will be read to find the scale and positional properties.</para>
<para>The associated file is based on filename patterns; e.g. if the image is <filename>filename.jpg</filename> - then the world file may be <filename>filename.jpgw</filename> or <filename>filename.jgw</filename></para>
</section>
<section id="gpx_simplify" xreflabel="Auto GPX Simplify"><title>Auto Device GPX Simplify</title>
<para>If this is on, GPX files will be simplified (using <application>GPSBabel</application>) if they are saved into a special location (by default a Garmin device location in OS file system).</para>
<para>Extra parameters used in process such as the location and limits applied can be refined by <emphasis>export_device_*</emphasis> values in <xref linkend="misc_settings"/>.</para>
<para>A warning message is displayed when this occurs so one can consider if manually managing the tracks is needed, e.g. see <xref linkend="filter"/> methods.</para>
<para>The main intention for this is to prevent writing GPX files that are only partially useful.
For instance on a GPS Etrex 20 device: if a track with 1000 points is saved to it, the device will only read in the first 500 points,
thus effectively making only 1/2 of the track available.
Hopefully a simplified track will be more useful to follow to your destination when one is out in the wilds, than only a section of it.
</para>
<note><para>You will need to set the appropriate limits for your device, as this is not currently auto detected.</para></note>
</section>
</section>

<section id="prefs_advanced" xreflabel="Advanced Preferences"><title>Advanced</title>
<section><title>Save File Reference Mode</title>
<para>
	Files referenced within project files can be saved with either absolute or relative paths.
	Using relative paths can be useful when copying the project file and the associated files between different systems.
</para>
</section>
<section><title>Ask for Name before Track Creation</title>
<para>A setting to control whether an automatic name is used when creating a new track or route, or whether you are asked to enter a name.</para>
</section>
<section><title>Show Tooltip during Track Creation</title>
<para>A setting to control whether the tooltip with the cumulative track or route distance is shown when creating tracks and routes.</para>
</section>
<section><title>Show Graph for TrackWaypoint Layer</title>
<para>A setting to control for the selected <xref linkend="TrackWaypoint"/> layer whether a graph should be drawn when there is a singular track or route in the layer.
Otherwise the specific track or route must be selected in order to draw the associated graph.</para>
</section>
<section><title>The number of recent files</title>
<para>
	The number of recent files shown in the <menuchoice><guimenu>File</guimenu><guisubmenu>Open Recent File</guisubmenu></menuchoice> menu.
	A value of -1 means all files. The new value applies to New Windows only (or on application restart).
</para>
<section><title>Open files in selected layer</title>
<para>A setting to control whether non Viking format files (i.e. typically GPX or KML files) will open in the selected <xref linkend="TrackWaypoint"/> Layer.
When no TrackWaypoint Layer is selected (or the layer is invisibile) then the file will be open in the default manner: at the top level.
</para>
</section>
<section><title>Show calendar day names</title>
<para>A setting to control whether the calendar displays day names (Mon, Tue, etc...) or not.
</para>
</section>
<section><title>Ruler area label position</title>
<para>A setting to control the position of the label drawn on the viewport that shows the area value. Includes a setting to turn off the label.
</para>
</section>
<section><title>Use Scroll to Zoom</title>
<para>A setting to control if scroll events cause the viewport to zoom (rather than moving). Useful with mouse scroll wheels, but less intuitive for touchpads.
</para>
<note>
<para>GTK3 Build: Viking now detects the device emitting scroll events, so from trackpads/touchscreens these will always scroll the viewport. This setting is only now used for mouse scroll wheels.
</para>
</note>
</section>
<section><title>Invert Scroll Direction</title>
<para>A setting to control the direction of scroll events. Especially useful with touchpads and can be used to override the desktop system's setting.
</para>
</section>
<section><title>Select Tool Double Click to Zoom</title>
<para>A setting to enable the Select Tool double click behaviour as per the previous default tool (Pan Tool) behaviour. By default this is off, as typically one would use the scroll wheel to zoom. When off this means Viking does not need to wait to see if double clicks are going to occur and so can take immediate action (e.g. show a context menu without delay). Turning this on my be useful for touchpads (however the intention is to support Pinch Zoom behaviour) or perhaps if your scroll wheel is broken.
</para>
</section>
<section><title>Auto Select Trackpoint</title>
<para>A setting to control whether when moving the mouse over the track graph on the main display, it updates the selected trackpoint in the viewport.
</para>
<section><title>Warn Unsaved Changes on Exit</title>
  <para>If you don't want &appname; to warn about unsaved changes on exit then you can turn this off.</para>
</section>
<section><title>Select Newly Created Layer</title>
  <para>A setting to control when a new layer is created that it is selected; otherwise the current selection is unchanged.</para>
</section>
<section><title>Graphs Draw Sunlight</title>
  <para>A setting to control whether the backdrop indicator for daylight, twilight and night time is shown on all Time related graphs.</para>
</section>
</section>
</section>
</section>

<section id="prefs_osm" xreflabel="OpenStreetMap Traces Preferences"><title>OpenStreetMap Traces</title>
  <note>
    <para>
      This functionality is currently disabled since OSM requires OAuth2 for authentication, but OAuth2 is not supported in &appname;.
    </para>
  </note>
<section><title>OAuth Method</title>
<para>
  Using the <ulink url="https://en.wikipedia.org/wiki/OAuth">OAuth</ulink> method means that your OSM account details are no longer needed to be known by &appname;.
  Instead specific tokens are generated for use only by &appname; which are associated with your OSM account.
</para>
<para><emphasis role="bold"><guibutton>Get New OSM Access Tokens</guibutton></emphasis>
  Use this button to generate a new OSM Access Token Key and Secret.
  You will be redirected to the OSM website to confirm allowing &appname; to access the GPX Traces features.
  The tokens returned by the OSM website will be stored in the Access Token Key + Access Token Secret preferences.
</para>
<para><emphasis role="bold">Access Token Key + Access Token Secret</emphasis>:
These are the values used, however one typically does not need to manually change them.</para>
</section>
<section><title>HTTP Basic Authentication (Discouraged)</title>
<para><emphasis role="bold">OSM Username + Password</emphasis></para>
<para>Store your OSM details here, so that you don't need to enter it in every time in the <xref linkend="osm_upload"/> procedure.</para>
<para>This is not recommended and one should use the <ulink url="https://en.wikipedia.org/wiki/OAuth">OAuth</ulink> method using access tokens described above.</para>
<warning>
<para>
Your OSM password will be stored in plain text.
</para>
</warning>
<warning>
<para>
This password is transferred <emphasis role="bold">unencrypted</emphasis> in every request sent to the OpenStreetMap server. This is due to the use of OpenStreetMap's basic authentication method.
</para>
</warning>
<warning>
<para>
When OAuth capability is built into &appname; (the default), use of HTTP Basic Authentication can only be used if the <xref linkend="misc_settings"/> <emphasis>osm_basic_auth</emphasis> is enabled.
</para>
</warning>
</section>
</section>

<section id="prefs_mapnik" xreflabel="Mapnik Preferences"><title>Mapnik</title>
<note>
<para>If any changes to these settings are made, you will need to restart &appname; to make them be applied.
</para>
</note>
<section><title>Plugins Directory</title>
<para>The location of Mapnik plugins. An attempt is made to automatically determine the initial value,
 however if this is wrong or Mapnik is upgraded then the directory can be set here.</para>
</section>
<section><title>Fonts Directory</title>
<para>
The location of fonts for use with Mapnik. Normally it is best to simply use the System's font directory.
</para>
</section>
<section><title>Recurse Fonts Directory</title>
<para>Load fonts in any sub-directories of the main font directory.</para>
</section>
<section><title>Rerender Timeout</title>
<para>The time in hours before any tile is rerendered.</para>
<para>This is useful in case the underlying source data for the tiles changes (e.g. OSM data is continually evolving).
 &appname; normally has no way of knowing when the data has changed, so this simple timeout method is provided to maintain consistency of the tile images.</para>
</section>
<section><title>CartoCSS</title>
<para>This allows setting the specific location of the <emphasis>carto</emphasis> executable.</para>
</section>
<section><title>Threads</title>
<para>
	The number of threads to use for Mapnik rendering tasks.
	By default the value is set to the 1 in case of any multi-threading rendering code chain crashes.
	Otherwise trying setting the value to the number of the CPUs of the system minus one (so as not to overload the system), in order to minimise the overall rendering times.
</para>
</section>
</section>

<section id="prefs_routing" xreflabel="Routing Preferences"><title>Routing</title>
<section><title>Routing engine</title>
<para>You can select the routing engine used by default, ie by features that do not propose a live selection, like <xref linkend="route_finder"/>.</para>
</section>
</section>

<section id="prefs_startup" xreflabel="Startup Preferences"><title>Startup</title>
<para>Naturally since these preferences affect the startup, the values will not be used until &appname; is restarted.</para>
<section><title>Restore Window Setup</title>
<para>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.</para>
</section>
<section><title>Default Map Layer</title>
<para>When this is enabled, a map layer is automatically added whenever &appname; is opened and a &appname; file is not to be loaded.</para>
<para>The <xref linkend="Map"/> layer used is defined by the map layer's default values.</para>
</section>
<section><title>Highlight Colour</title>
  <para>Sets the initial colour used for selected items, as used by
    <menuchoice><guimenu>View</guimenu><guimenuitem>Set Highlight Color</guimenuitem></menuchoice>.
  </para>
</section>
<section><title>Startup Method</title>
<para>Enables selection of how the startup position should be determined.</para>
<variablelist>
<varlistentry>
<term>Home Location (default)</term>
<listitem><para>Position as set by the <guilabel>Set the Default Location</guilabel></para></listitem>
</varlistentry>
<varlistentry>
<term>Last Location</term>
<listitem><para>Uses the last position viewed on the viewport</para></listitem>
</varlistentry>
<varlistentry>
<term>Specified File</term>
<listitem><para>Load the file as specified below</para></listitem>
</varlistentry>
<varlistentry>
<term>Auto Location</term>
<listitem id="auto_location" xreflabel="Auto Location">
	<para>Uses the <ulink url="https://www.freedesktop.org/wiki/Software/GeoClue">GeoClue</ulink> service if available
	or otherwise the web service <ulink url="https://www.hostip.info">hostip.info</ulink> to attempt to determine your location via IP lookup
	</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section><title>Startup File</title>
<para>Loads this specified file when the Startup method is set to <guilabel>Specified File</guilabel></para>
</section>
<section><title>Check For New Version</title>
<para>Periodically (no more than once every 14 days), check to see if there is a new version of &appname; available.</para>
</section>
</section>

<section id="prefs_dem_server" xreflabel="DEM Server"><title>DEM Server</title>
<para>Store your NASA Earth login details which uses HTTP Basic Authentication.</para>
<warning>
<para>
Your password will be stored in plain text.
</para>
</warning>
</section>

<section id="prefs_toolbar" xreflabel="Toolbar Preferences"><title>Toolbar</title>
<section><title>Append to Menu</title>
<para>Allows setting the toolbar on the same vertical space as the menu, thus increasing vertical space for the map.</para>
</section>
<section><title>Icon Size</title>
<para>Allows configuration of the icon size, including overiding the system's default preference to the setting desired just for &appname;.</para>
</section>
<section><title>Icon Style</title>
<para>Allows configuration of the icon style, including overiding the system's default preference to the setting desired just for &appname;.</para>
</section>
<section id="prefs_toolbar_customize" xreflabel="Customize Toolbar"><title>Customize</title>
<para>Opens the Customize Toolbar dialog.</para>
<para>From this dialog the items in the toolbar can be added, removed and reordered. Reordering of items is performed by drag and drop.</para>
<figure>
<title>Customize Toolbar dialog</title>
<screenshot>
  <graphic format="PNG" fileref="figures/customize_toolbar_dialog.png"/>
</screenshot>
</figure>
</section>
</section>

<section id="prefs_trackprops" xreflabel="Track Properties Dialog Preferences"><title>Track Properties Dialog</title>
<section><title>Track Properties Dialog</title>
<para>A setting to control the location of the tabs (either to the side or on top).</para>
<para>Settings to control displaying any of the individual graph types.</para>
</section>
</section>

</section>

<!-- HOWTOS-->
<section id="Howto"><title>Howto's</title>
<section id="howto_start"><title>Getting Started</title>
<para>
&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 <xref linkend="prefs_startup"/>.
</para>
<para>
Some other general use cases for using &appname;, are as follows:
</para>
<section><title>Go to an Area of Interest - Simple Ways</title>
<para>
&appname;'s default location is a Manhattan, New York, USA, so you may need to pick another place that interests you - such as where you live.
</para>

<procedure>
<title>Method A</title>
<step>
<para>
  The No Effort Approach
</para>
<para>
  If you have accepted &appname;'s defaults then it will attempt to automatically find your location via IP lookup methods.
</para>
<note>
  <para>You will need an internet connection for this to work!</para>
</note>
</step>
</procedure>

<procedure>
<title>Method B</title>
<step>
<para>
  Use the online location address/place search.
</para>
<para>
  Use the <guibutton>Go to Location</guibutton> toolbar button or from the menus
  <menuchoice><guimenu>View</guimenu><guimenuitem>Go to Location</guimenuitem></menuchoice>
  or from the Goto tab on the left hand panel.
  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.
</para>
<note>
	<para>You will need an internet connection for this search to work</para>
</note>
</step>
</procedure>

<procedure>
<title>Method C</title>
<step>
<para>
Get data from files in GPX, FIT, TCX or KML format, which can be opened directly.
Use <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>
This could be directly from a GPS device if supports a file system / mass storage mode.
</para>
<para>
  The file location for a GPS device is device and Operating System dependent.
  Assuming the device automounts (most Operating Systems/Desktop Enviroment do this automatically).
  For example with an Etrex 20, using (this is for Debian/Ubuntu) - use <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice> to browse to:
</para>
<para>
  <filename>/media/username/GARMIN/Garmin/GPS/Current/Current.gpx</filename>
</para>
<para>
  For Windows it is typically something like:
  <filename>E:\GARMIN\Garmin\GPX\Current\Current.gpx</filename>
</para>
<para>
Other file formats can be imported that are those supported by GPSBabel.
<menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>Import File With GPSBabel...</guimenuitem></menuchoice>
</para>
<note>
<para>
The viewport will be automatically moved and resized to view the contents of the file.
</para>
</note>
</step>
</procedure>
</section>

<section><title>Go to an Area of Interest - More Advanced Ways</title>
<procedure>
<title>Method A</title>
<step>
<para>
	If you know the coordinates of where you want to view:
</para>
<para>
Use <menuchoice><guimenu>View</guimenu></menuchoice> and select from either <menuchoice><guimenu>Go to Lat/Lon</guimenu></menuchoice> or <menuchoice><guimenu>Go to UTM</guimenu></menuchoice> and then enter in the specific coordinates.
</para>
</step>
</procedure>

<procedure>
<title id="method_b">Method B</title>
<step>
<para>Use the GPS Layer or <menuchoice><guimenu>File</guimenu><guimenuitem>Acquire</guimenuitem><guimenuitem>From GPS</guimenuitem></menuchoice>
to load data directly from a limited set of GPS Devices that are supported by <application>GPSBabel</application>.
</para>
<para>You can specify the types of data to acquire: Tracks, Routes and/or Waypoints.
</para>
<note>
<para>You must have write permission to the port used. For <trademark>Unix</trademark> like OS:</para>
<itemizedlist>
	<listitem><para>/dev/ttyS0 is the first serial port</para></listitem>
	<listitem><para>/dev/ttyUSB0 is the first USB port</para></listitem>
	<listitem><para>usb: is any USB port</para></listitem>
</itemizedlist>
<para>Depending on your distribution only one of the USB port types may work</para>
<para>For <trademark>Windows</trademark>:</para>
<itemizedlist>
	<listitem><para>com1: is the first serial port</para></listitem>
	<listitem><para>usb: is any USB port</para></listitem>
</itemizedlist>
</note>
<note>
  <para>Garmin and Magellan GPS devices supported by all versions of GPSBabel, later versions support more devices such as NaviGPS (Navilink protocol).</para>
  <para>See <ulink url="https://www.gpsbabel.org/capabilities.html">GPSBabel Capabilities</ulink> which includes the devices supported.</para>
</note>
</step>
</procedure>

<procedure>
<title>Method C</title>
<step>
<para>
  Use a GPS's real time location:
</para>
<para>
  See <xref linkend="gpsd"/> for more information.
</para>
</step>
</procedure>
</section>

<section><title>Add a Map Layer</title>
<para>
  By default &appname; will add a map layer for you that will automatically download map tile images, but you can of course change it or add additional map layers.
</para>
<para>
Use <menuchoice><guimenu>Layers</guimenu><guimenuitem>New Map Layer</guimenuitem></menuchoice>, and choose a suitable cache directory
where you would like to store your tracks and click <guilabel>OK</guilabel>. 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 <xref linkend="map_tool_dl"/> Tool. Click where you would like to download a
map. Regardless of what tool you are using, the middle mouse button
always pans. </para>
<note>
<para>
You need an open internet connection when you are downloading maps.
</para>
</note>
<para>
If you can no longer see your tracks or waypoints and only the map,
it is because the layer named <emphasis>Map</emphasis> is <emphasis>ABOVE</emphasis> your TrackWaypoint layer that your GPS data is in.
This means that it will be drawn last and on top of the other <xref linkend="gc_layers"/>.
Look at the  <xref linkend="gc_layers_panel"/> to the left which shows this order.
Select the <xref linkend="Map"/> layer from the list and click the down arrow button beneath the list until the Map layer is below the <xref linkend="TrackWaypoint"/> layer.
Your tracks will now be drawn over the map.
</para>
</section>

<section id="GoHome" xreflabel="Home Location"><title>Set Your Home Location</title>
<para>
	You can save the current center position of the viewport as the default location AKA the Home Location by
	<menuchoice><guimenu>Edit</guimenu><guimenuitem>Set the Default Location</guimenuitem></menuchoice>.
</para>
<para>
	Then at any time you can return to this place by clicking on the <guibutton>Home</guibutton> icon on the toolbar.
</para>
<para>
    You can also set the default location via specifying the exact latitude and longitude in the <xref linkend="prefs"/>.
</para>
</section>

</section>
<section><title>From 1st startup to GPS track (including offline maps)</title>
<para>
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: <menuchoice><guimenu>View</guimenu><guimenuitem>Go to Location</guimenuitem></menuchoice>, enter <userinput>Stuttgart</userinput>.
</para>
<section><title>Fetching the maps</title>
<para>
<emphasis role="bold">Map</emphasis>
</para>
<procedure>
<step><para><menuchoice><guimenu>Layers</guimenu><guimenuitem>New Map Layer</guimenuitem></menuchoice></para></step>
<step><para>in the layer properties dialogue choose e.g. <guilabel>OpenStreetMap (Mapnik)</guilabel>.</para></step>
<step>
<para>For the moment, we keep the default <guilabel>Maps Directory</guilabel> (the directory in
which the maps will be stored and can be used for offline usage).</para>
</step>
<step>
<para>Check <guilabel>Autodownload maps</guilabel> and keep the zoom level as <guilabel>Use Viking
Zoom Level</guilabel>.</para>
<note>
<para>
however, that these settings will play an important
role in the pre-fetch for offline usage discussed later
</para>
</note>
</step>
</procedure>
<para>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.
</para>
<para>
<emphasis role="bold">DEM Layer (Height Map)</emphasis>
</para>
<procedure>
<step><para>Zoom out to 512.</para></step>
<step><para><menuchoice><guimenu>Layers</guimenu><guimenuitem>New DEM Layer</guimenuitem></menuchoice></para></step>
<step><para>Keep the download source as is (SRTM Global 90m), hit <guilabel>OK</guilabel>.</para></step>
</procedure>

<para>In the layer listing on the left, the <xref linkend="DEM"/> layer should reside
above the <xref linkend="Map"/> layer. If this is not the case, highlight the DEM layer
an shift it one up (using the arrow up button).
</para>
<procedure>
<step><para>highlight the DEM layer in the layer listing on the left</para></step>
<step><para>in the toolbar, check DEM layer download/import (the last symbol)</para></step>
<step><para>a left-click in the map window should then fetch the DEM data</para></step>
</procedure>
<para>
This might take some time.
</para>
<para>
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. <programlisting> right-click the DEM layer properties</programlisting>
</para>
<para>
The <guilabel>DEM Files</guilabel> listing allows you to delete the specific tiles (alternatively do this from the command line).
</para>
<para>
You can also alter the Min. and Max. elevation in this dialogue.
</para>

</section>
<section><title>GPS Track with Height Profile</title>
<procedure>
<step><para>Uncheck the <xref linkend="DEM"/> layer (the map is shown again)</para></step>
<step>
	<para><menuchoice><guimenu>Layers</guimenu><guimenuitem>New TrackWaypoint Layer</guimenuitem></menuchoice></para>
	<para>Ensure the new track layer is above the <xref linkend="Map"/> layer.</para>
</step>
<step><para>Expand the <xref linkend="TrackWaypoint"/> layer, select <guimenuitem>Tracks</guimenuitem></para></step>
<step><para>In the tools menu choose <guiicon><inlinegraphic fileref="figures/addtr_18.png"/></guiicon> <guibutton>Create Track</guibutton>
</para></step>
<step><para>Leftclick in the map window, enter a name</para></step>
<step>
	<para>Click several times to generate a track (a right-click removes the last point).</para>
	<para>Height data is set automatically since DEM data is available</para>
</step>
<step><para>Expand tracks in the layer menu, your track should show up, select it</para></step>
<step><para>Right click your track, select <guimenuitem>Properties</guimenuitem></para></step>
<step><para>Click the tab <guilabel>Elevation-distance</guilabel> - enjoy the plot</para></step>
</procedure>
<para>
In order to save this setting for later usage
</para>
<procedure>
<step><para>click <guilabel>OK</guilabel> in the <guilabel>Track Properties</guilabel> dialog</para></step>
<step><para><menuchoice><guimenu>File</guimenu><guimenuitem>Save As</guimenuitem></menuchoice>, choose a name (you can open this <emphasis>view</emphasis> later via <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>).</para></step>
</procedure>

</section>
<section><title>Usecase: offline data for holiday</title>
<para>
Suppose you want to have the <xref linkend="Map"/> and <xref linkend="DEM"/> data offline for your holiday in Italy near Bologna.
</para>
<procedure>
<step><para>Start a new &appname; session.</para></step>
<step><para><menuchoice><guimenu>View</guimenu><guimenuitem>Go to Location</guimenuitem></menuchoice>, enter Bologna</para></step>
<step><para><menuchoice><guimenu>Layers</guimenu><guimenuitem>New Map Layer</guimenuitem></menuchoice></para></step>
<step><para>Choose e.g. <guilabel>OpenStreetMap (mapnik)</guilabel>.</para></step>
<step><para>adapt the <guilabel>maps directory</guilabel> e.g. to <filename>/home/user/.viking-map-holiday/</filename>.
This allows you to delete the map stuff after holiday without purging the rest of your maps.
</para></step>
<step><para>check <guilabel>autodownload map</guilabel></para></step>
<step><para>keep <guilabel>viking zoom level</guilabel></para></step>
<step><para>zoom out to 1024</para></step>
<step><para>add a <xref linkend="DEM"/> layer (as discussed above)</para></step>
<step><para>download the DEM data</para></step>
</procedure>
<para>In the &app; version discussed here, the DEM data automatically
are stored in <filename>/home/user/.viking-maps/</filename>. You can move the corresponding
tiles into <filename>.viking-map-holiday/</filename> if you like.
</para>
<para>
<emphasis role="bold">Download map data for all zoom levels</emphasis>
</para>
<procedure>
<step><para>uncheck the DEM layer for the map to show up</para></step>
<step><para>navigate the map to be centered at Bologna</para></step>
<step><para>choose the zoom such, that all regions of interest are displayed in the map window (e.g. 1024)</para></step>
<step>
<para>follow this sequence until you have all tiles for all zoom levels you need</para>
<substeps>
<step><para>right-click the <xref linkend="Map"/> layer properties</para></step>
<step><para>set the zoomlevel explicitly one below the last (in the first cycle 512), hit OK</para></step>
<step><para>right click the map layer <guimenuitem>Download Missing Onscreen Maps</guimenuitem></para></step>
<step><para>wait until all tiles for that resolution have been downloaded</para></step>
</substeps>
</step>
</procedure>
<para>This may take some time and some hard disk capacity.</para>
<para>
Do not forget to save your configuration (as discussed above).
</para>

</section>

</section>
<section><title>OpenStreetMap project</title>
<para>
<ulink url="https://openstreetmap.org/">OpenStreetMap (OSM)</ulink> is a collaborative project to create a free editable map of the world.
One of the sources of data for this project is GPS tracks.
&appname; supports this project via the GPS Traces methods, both uploading and downloading such data.
</para>
<para>
  Authentication/authorization is required to use these services. See <xref linkend="prefs_osm"/>.
</para>
<para>
Also see <ulink url="https://wiki.openstreetmap.org/wiki/API_v0.6#GPS_Traces"/> for further detail.
</para>
<section><title>Uploading data to OpenStreetMap</title>
<para>
It is possible to upload data directly from &appname; to OpenStreetMap.
</para>
<formalpara>
<title>Upload a layer</title>
<para>
One solution is to upload whole a <xref linkend="TrackWaypoint"/> layer. To do this,
simply select the layer and right click on it. Then, select <guimenuitem>Upload to
OSM</guimenuitem>.
</para>
</formalpara>
<formalpara>
<title>Upload a single track</title>
<para>Another solution is to upload an individual track. Simply select the track and right click on it.
Then select <guimenuitem>Upload to OSM</guimenuitem>.
</para>
</formalpara>
<formalpara>
<title>Fill in the form</title>
<para>
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 space separated list of tags.
</para>
</formalpara>
</section>

<section id="osm_dl" xreflabel="OpenStreetMap Traces Download"><title>Downloading Traces from OpenStreetMap</title>
<para>
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.
</para>
<formalpara>
<title>Download all visible tracks</title>
<para>One solution is to select
<menuchoice>
<guimenu>File</guimenu>
<guisubmenu>Acquire</guisubmenu>
<guimenuitem>OSM traces...</guimenuitem>
</menuchoice>.
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 <emphasis>Page Numbers</emphasis> which start at 0.
Increasing the page number parameter allows one to request the subsequent sets of point groups.
</para>
</formalpara>
</section>
<section id="osm_my_dl" xreflabel="OpenStreetMap My Traces Download"><title>Downloading Your Own Traces from OpenStreetMap</title>
<note>
  <para>
    This functionality is currently disabled since OSM requires OAuth2 for authentication, but OAuth2 is not supported in &appname;.
  </para>
</note>
<para>
It is possible to download any of <emphasis>your personal</emphasis> GPS traces previously uploaded to OpenStreetMap into &appname;.
</para>
<para>
Initially this will return the list of your OSM Traces, from which you can select which specific 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.
</para>
</section>

</section>

<section><title>Geotagging</title>
<para>
	This assumes you already have a <xref linkend="Map"/> layer enabled for ease of use (if not see above to get one).
</para>
<section><title>Manual Positioning</title>
<para>
	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.
</para>
<para>
	First create a <xref linkend="TrackWaypoint"/> layer or use an existing one; and select it in the <xref linkend="gc_layers_panel"/>.
	NB Make sure this layer is above the <xref linkend="Map"/> layer in the Layers Panel list.
	Create a new waypoint (or move an existing one) to exact location desired:
<itemizedlist>
	<listitem><para>Select the <xref linkend="createwptool"/> tool, then left click on the map at the location desired, choosing an image to associate with it in the new waypoint dialog</para></listitem>
	<listitem><para>Select the <xref linkend="selecttool"/> tool, then left click on waypoint to be moved. Left click again and drag the waypoint to the location desired</para></listitem>
</itemizedlist>
	Then using the Select tool left click on waypoint to select it, then right click to access the Waypoint properties menu, then choose
	<menuchoice><guimenu>Update Geotag on Image</guimenu><guisubmenu>Update</guisubmenu></menuchoice>
</para>
<para>
	The <guilabel>Update Geotag on Image</guilabel> options are only available when a waypoint has an image associated with it.
</para>
</section>

<section><title>Automatic Positioning Against a Tracklog</title>
<para>
	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 <link linkend="howto_start">Getting Started</link>.
	It helps if this is the track that was recorded at the time you took some photographs!
</para>
<para>
	Select the track either from the layers panel on the left or via the viewport using the <xref linkend="selecttool"/> tool.
	Then right click on it and chose the <menuchoice><guimenu>Geotag Images...</guimenu></menuchoice> leading you to the <xref linkend="geotagging"/> Dialog.
</para>
<para>
	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 successful, 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.
</para>
<formalpara><title>Option: Overwrite Waypoints</title>
<para>
	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).
</para>
</formalpara>
<para>
	If you have multiple tracks in a <xref linkend="TrackWaypoint"/> layer, then invoking the <menuchoice><guimenu>Geotag Images...</guimenu></menuchoice> action on the layer
	will search all the tracks to find location matches.
</para>
</section>
</section>

<section id="gpsd"><title>GPS Real Time Location</title>
<para>
	&appname; relies on <ulink url="https://gpsd.gitlab.io/gpsd">GPSD</ulink> (via the GPSD service library client) to provide the current location from a real time feed from a GPS device. 
</para>
<note>
<para>
  At the time of writing the GPSD service itself is supported on the following platforms: "Presently Linux, OpenBSD and NetBSD are directly supported... Apple's OS X is supported in a limited fashion.". i.e. Explicitly <emphasis>not on Windows</emphasis>.
</para>
<para>
  On Windows &appname; provides a GPSD client to connect with the server (service daemon) instance of the GPSD which would be running on different (supported platform) machine. For instance notionally one could run a virtual machine instance of a BSD variant on the Windows host, run GPSD on this BSD instance and then make &appname; connect to that GPSD instance.
</para>
<para>
  Running the GPSD service is outside the scope of &appname;.
</para>
</note>
<para>
	This assumes you already have a <xref linkend="Map"/> layer enabled for ease of use (if not see above to get one).
</para>
<para>
	Turn on the GPS Device, ensure it has figured out it's location and plug it in to your computer.
</para>
<section><title>Set Up GPS Layer</title>
<para>
	You will need a <xref linkend="GPS"/> layer. One can be added via <menuchoice><guimenu>Layers</guimenu><guisubmenu>Add GPS Layer</guisubmenu></menuchoice>.
</para>
<para>
	Adjust the <emphasis>Realtime Tracking Mode</emphasis> settings to interface with <ulink url="https://gpsd.gitlab.io/gpsd">gpsd</ulink> as necessary. Normally the defaults should suffice.
</para>
<para>
  Current Linux distributions should run <application>gpsd</application> automatically when a GPS Device is plugged in. Otherwise you may have to run <application>gpsd</application> manually.
</para>
<para>
  The viewport should jump to the GPS location as by default &appname; continually attempts to connect to GPSD.
  Otherwise right-click the layer and select <guimenuitem>Start Realtime Tracking</guimenuitem>.
</para>
<para>
  Troubleshooting checklist:
</para>
<procedure><step><para>Confirm <application>gpsd</application> is running.</para></step></procedure>
<procedure><step><para>Confirm on the GPS device it has a location.</para></step></procedure>
<procedure><step><para>Confirm the <emphasis>Realtime Tracking Mode</emphasis> settings.</para></step></procedure>
</section>
</section>

<section><title>What to Do if &appname; Does Not Seem to Work</title>
<important>
<para>
  The latest versions of &appname; now captures logging messages, which can be accessed via a button in the middle of the statusbar, or via <menuchoice><guimenu>View</guimenu><guimenuitem>Log</guimenuitem></menuchoice>. The statusbar shows the number of log messages. The debug status itself can also be controlled from the GUI itself, use <menuchoice><guimenu>Help</guimenu><guimenuitem>Debug</guimenuitem></menuchoice> to toggle the setting in order to capture more messages. The log window displays the newest messages at the top.
</para>
</important>

<para>
  For older versions of &appname;, in order to get some information about what it is doing, start it in verbose debug mode via the command line:
<programlisting>viking -dV</programlisting>
</para>
<para>
NB For <trademark>Windows</trademark> the process is slightly more involved as the output is typically not shown in the command prompt,
so you have to redirect the output to a file, e.g. open the command prompt and then:
<programlisting>
cd "C:\Program Files\Viking"
viking -dV 2>1 > %TMP%\viking.log
</programlisting>
Then close &appname; before viewing the output file, such as:
<programlisting>notepad %TMP%\viking.log</programlisting>
</para>

<para>
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:
<screen>
** (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
</screen>
Or for OSM Mapnik tile server:
<screen>
* 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
</screen>
</para>
</section>

</section>
<!-- End of Howtos -->

<xi:include href="extending.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<xi:include href="userconfig.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<xi:include href="recommends.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<xi:include href="commandline.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

<xi:include href="attribution.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

</article>
