[graphics/kgeotag] /: Added a handbook stub

Tobias Leupold null at kde.org
Thu Apr 14 10:58:17 BST 2022


Git commit 16f3124142de5d612b45e3e13af4b40d7fc88860 by Tobias Leupold.
Committed on 14/04/2022 at 09:57.
Pushed by tleupold into branch 'master'.

Added a handbook stub

BUG: 452534

M  +11   -1    CMakeLists.txt
M  +2    -0    ChangeLog.rst
M  +1    -1    ChangeLog.rst.license
A  +60   -0    doc/index.docbook
A  +156  -0    doc/overview.docbook

https://invent.kde.org/graphics/kgeotag/commit/16f3124142de5d612b45e3e13af4b40d7fc88860

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ce310a8..14acc88 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,7 +36,10 @@ add_definitions(
 )
 
 # Find KDE
-find_package(KF5 ${KF5_MIN_VERSION} COMPONENTS CoreAddons I18n XmlGui ConfigWidgets Crash REQUIRED)
+find_package(KF5 ${KF5_MIN_VERSION}
+    COMPONENTS CoreAddons I18n XmlGui ConfigWidgets Crash DocTools
+    REQUIRED
+)
 find_package(KF5KExiv2 ${KExiv2_MIN_VERSION} REQUIRED)
 
 # Find Marble
@@ -101,6 +104,13 @@ target_link_libraries(kgeotag
     Marble
 )
 
+# Documentation
+kdoctools_create_handbook(
+    doc/index.docbook
+    INSTALL_DESTINATION "${KDE_INSTALL_DOCBUNDLEDIR}/en"
+    SUBDIR kgeotag
+)
+
 # Installation
 
 install(TARGETS kgeotag ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
diff --git a/ChangeLog.rst b/ChangeLog.rst
index d5d296c..0961863 100644
--- a/ChangeLog.rst
+++ b/ChangeLog.rst
@@ -1,3 +1,5 @@
+* **New/Bugfix (#452534):** Added a handbook stub.
+
 ====================================================================================================
 KGeoTag 1.2.0 released (12.11.2021)
 ====================================================================================================
diff --git a/ChangeLog.rst.license b/ChangeLog.rst.license
index d431ee5..9c563cd 100644
--- a/ChangeLog.rst.license
+++ b/ChangeLog.rst.license
@@ -1,3 +1,3 @@
-SPDX-FileCopyrightText: 2021 Tobias Leupold <tl at l3u dot de>
+SPDX-FileCopyrightText: 2021-2022 Tobias Leupold <tl at l3u dot de>
 
 SPDX-License-Identifier: CC-BY-SA-4.0
diff --git a/doc/index.docbook b/doc/index.docbook
new file mode 100644
index 0000000..a60b98b
--- /dev/null
+++ b/doc/index.docbook
@@ -0,0 +1,60 @@
+<?xml version="1.0" ?>
+
+<!-- SPDX-FileCopyrightText: 2022 Tobias Leupold <tl at l3u dot de>
+
+     SPDX-License-Identifier: CC-BY-SA-4.0
+-->
+
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
+  <!ENTITY kgeotag "<application>KGeoTag</application>">
+  <!ENTITY kappname "&kgeotag;">
+  <!ENTITY package "extragear-graphics">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % English "INCLUDE">
+  <!ENTITY overview SYSTEM "overview.docbook">
+]>
+
+<book id="kgeotag" lang="&language;">
+
+<bookinfo>
+
+<title>The &kgeotag; Handbook</title>
+
+<authorgroup>
+
+<author>
+<firstname>Tobias</firstname>
+<surname>Leupold</surname>
+</author>
+
+</authorgroup>
+
+<copyright>
+<year>2022</year>
+<holder>Tobias Leupold</holder>
+</copyright>
+
+<date>2022-04-14</date>
+
+<releaseinfo>1</releaseinfo>
+
+<abstract>
+
+<para>
+This is a user manual stub for &kgeotag;, the stand-alone photo geotagging program. At the moment, there's not much to see here apart from the general information you can find on <ulink url="https://kgeotag.kde.org/">KGeoTag's homepage</ulink>, but hopefully, this will change in the future ;-)
+</para>
+
+</abstract>
+
+<keywordset>
+<keyword>KDE</keyword>
+<keyword>extragear-graphics</keyword>
+<keyword>KGeoTag</keyword>
+<keyword>Photo geotagging program</keyword>
+</keywordset>
+
+</bookinfo>
+
+&overview;
+
+</book>
diff --git a/doc/overview.docbook b/doc/overview.docbook
new file mode 100644
index 0000000..fda4a93
--- /dev/null
+++ b/doc/overview.docbook
@@ -0,0 +1,156 @@
+<!-- SPDX-FileCopyrightText: 2022 Tobias Leupold <tl at l3u dot de>
+
+     SPDX-License-Identifier: CC-BY-SA-4.0
+-->
+
+<chapter id="overview">
+
+<title>Overview</title>
+
+<section>
+
+<title>What is it?</title>
+
+<para>
+KGeoTag is a Free/Libre Open Source photo geotagging program. It's written in C++/<ulink url="https://www.qt.io/">Qt</ulink> and uses the <ulink url="https://api.kde.org/frameworks/">KDE Frameworks</ulink>. It's published under the terms of the <ulink url="https://www.gnu.org/licenses/#GPL">GNU General Public License (GPL)</ulink>.
+</para>
+
+</section>
+
+<section>
+
+<title>What is "Geotagging"?</title>
+
+<para>
+Photos (e.g. JPEG images) contain metadata like the creation date, camera information etc. Those are either stored in the so-called <ulink url="https://en.wikipedia.org/wiki/Exif">Exif header</ulink>, in an <ulink url="https://en.wikipedia.org/wiki/Extensible_Metadata_Platform">XMP sidecar file</ulink> or in both. This data can also represent geographic coordinates so that it's replicable where the images were taken.
+</para>
+
+<para>
+Most cameras don't have GPS receivers, so, most can't save coordinates when taking images. A common approach is to e.g. carry a small GPS logging device along (or nowadays also using a smartphone ;-), which records a track all the time. Later on, the images' dates can be compared to the GPS log's points' dates to figure out where an image was taken.
+</para>
+
+<para>
+If one knows for sure where the respective photo was taken, it's also possible to assign coordinates to the images manually.
+</para>
+
+</section>
+
+<section>
+
+<title>Geotagging with KGeoTag</title>
+
+<section>
+
+<title>Supported file formats</title>
+
+<para>
+KGeoTag currently supports The following image formats: <ulink url="https://en.wikipedia.org/wiki/JPEG">JPEG</ulink>, <ulink url="https://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</ulink>, <ulink url="https://en.wikipedia.org/wiki/WebP">WebP</ulink>, <ulink url="https://en.wikipedia.org/wiki/TIFF">TIFF</ulink>, <ulink url="https://en.wikipedia.org/wiki/OpenRaster">OpenRaster</ulink> and <ulink url="https://en.wikipedia.org/wiki/Krita">Krita Document</ulink>.
+</para>
+
+<para>
+Geodata can be loaded from (uncompressed) <ulink url="https://en.wikipedia.org/wiki/GPS_Exchange_Format">GPX</ulink> files.
+</para>
+
+</section>
+
+<section>
+
+<title>Assigning images</title>
+
+<para>
+KGeoTag offers multiple ways to assign coordinates to images:
+</para>
+
+<section>
+
+<title>Automatic tagging</title>
+
+<para>
+The most convenient approach is automatic matching using geodata provided by GPX files. Those can be loaded and displayed on a map. Using this data, images can be assigned with matching geographic coordinates by finding (more or less) exact chronological matches, or by interpolating a likely position if no exact match can be found.
+</para>
+
+<para>
+Normally, the images only provide a time and date, but no timezone. Thus we need to set one to make an assignment possible. The presumably correct timezone is detected from the geographic location of the GPX file, but it can also be set manually.
+</para>
+
+<para>
+If altitude values aren't set in the dataset or they are not accurate enough, they can be looked up using opentopodata.org (see below).
+</para>
+
+<para>
+The clocks of cameras mostly aren't radio-controlled and often have a slight offset. If the images' dates have a time drift due to the camera's clock being not exactly in sync with the GPS data (which is assumed to be correct), a deviation can be defined. It then will be considered when searching for matches, and can also be used to fix the images' dates.
+</para>
+
+</section>
+
+<section>
+
+<title>Drag and drop interface</title>
+
+<para>
+Another option is tagging images via drag and drop. One or more images can be selected and dropped onto the map, to their respective location (possibly also guided by some GPX track). Elevations can't be ascertained this way, so either, they are left to be "0 m" (sea level), entered manually or looked up via opentopodata.org (either automatically or manually, see below).
+</para>
+
+</section>
+
+<section>
+
+<title>Assigning images to bookmarks</title>
+
+<para>
+For places frequently assigned to images (like one's home, where one doesn't carry a GPS logger), bookmarks can be defined. Images can then be assigned to the respective coordinates easily.
+</para>
+
+</section>
+
+<section>
+
+<title>Manual assignment</title>
+
+<para>
+It's also possible to enter coordinates for one or more images by hand. The altitudes can be either looked up automatically using opentopodata.org (see below), or also be entered manually.
+</para>
+
+</section>
+
+</section>
+
+<section>
+
+<title>Setting or looking up elevation information</title>
+
+<para>
+Altitudes can always be set maually. Alternatively, the altitudes can also be looked up querying different elevation datasets using <ulink url="https://www.opentopodata.org/">opentopodata.org</ulink>'s API.
+</para>
+
+<para>
+The preset is to use the <ulink url="https://asterweb.jpl.nasa.gov/gdem.asp">ASTER</ulink> dataset. This one covers the whole globe. Others can be used as well, cf. <ulink url="https://www.opentopodata.org/#public-api">opentopodata.org's homepage</ulink>.
+</para>
+
+<para>
+By default, such a server lookup has to be triggered manually. It's also possible to enable automated altitude lookups for all images dropped on the map (which yields geographic coordinates but no elevation) and coordinates entered manually.
+</para>
+
+</section>
+
+<section>
+
+<title>Making the data persistent</title>
+
+<para>
+Finally, the assigned coordinates can be saved. KGeoTag can either write them to the images' Exif header (which will obviously alter the respective files), to XMP sidecar files (leaving the original files untouched) or to both. By default, a backup of each original file is created if it will be changed during the write process.
+</para>
+
+<para>
+This way, the geodata assignment is made persistent and also accessible for other geodata-aware applications (like e.g. <ulink url="https://www.kphotoalbum.org/">KPhotoAlbum</ulink>).
+</para>
+
+<para>
+If a time drift has been identified and a deviation has been given, the images' dates and times also can be fixed whilst saving.
+</para>
+
+</section>
+
+</section>
+
+</chapter>


More information about the kde-doc-english mailing list