Original Artikel und Quelle

Unter dem Titel "Coarse Geotagging with Bash and Google Maps" hat Dmitri Popov einen Blogartikel verfasst in dem mit einem kleinen Bashskript mittels Google Maps automatisch Geotags zu Bildern hinzugefügt bzw. bestehende Geotags geändert werden können. Das fand ich ziemlich praktisch, da ich derzeit versuche etwas mehr Ordnung in meine Bildsammlung zu bringen und bei meiner bevorzugten Bildverwaltungslösung digikam derzeit noch kein entsprechendes Feature implementiert ist.1

GUI Ansatz

Da eine Shell aber eher unhandlich ist wenn es um die Auswahl von bestimmten Bildern geht, habe ich das Skript ein wenig angepasst und mit Hilfe einer .desktop Datei einen KDE-Service-Menu Eintrag erstellt, mit dem man einfach im Dateimanager Dolphin eine Auswahl treffen kann und per Rechtsklick Geotags setzen kann.
Dabei habe ich noch Anmerkungen aus den Kommentaren des Blogpostes mit eingebaut die dafür sorgen, dass curl keine Ausgaben mehr liefert und das Leerzeichen durch %20 ersetzt werden.

Vorraussetzungen

Intern arbeitet das Skript mit den Tool jq, exiftool, curl, wget und kdialog. Falls diese nicht vorhanden sind, müssten sie aus den offiziellen Paketquellen nachinstalliert werden. Ich setze KDE Plasma in der Version 5.10 ein, denke aber das es auch unter anderen Dektopumgebungen möglich sein könnte den ServiceMenu Eintrag zum laufen zu bekommen.

Umsetzung

Das Service Menu besteht aus folgenden Dateien:

In der .desktop Datei werden die Pfade zu den Skripten gesetzt und die selektierten Bilder per %F übergeben. Das Skript applygeobookmark.sh nimmt in den ersten beiden Parametern die Koordinaten des "Bookmarks" entgegen, welche wiederum in der .desktop Datei derzeit hart einkodiert sind. Falls ich nochmal eine freie Minute finde, könnte man das sicher mit Hilfe der digikam Bookmark Datei (~/.local/share/digikam/geobookmarks.xml) und dem Tool xmlstarlet etwas dynamischer gestalten.
Im Großen und Ganzen habe ich mich bei der Erstellung der Skripte an den KDE-Services orientiert. Die Bilder in den kdialog Popups sind beispielsweise dort entnommen.
Der Menüpunkt "Set Geotag" ruft ein kdialog Fenster auf in dem man die Stadt oder den Ort des gewünschten Geotags eingeben kann. Nach diesem Begriff wird dann bei Google Maps gesucht und die entsprechenden Koordinaten herausgefiltert.

Der Menüpunkt "New York" stellt einen Bookmark-Eintrag dar. Hier werden die eingetragenen Koordinaten ohne weitere Nachfrage auf die Selektion übertragen.

Installation

Die "Installation" besteht hauptsächlich aus Kopieroperationen: kopiert die .dekstop Datei nach /usr/share/kservices5/ServiceMenus/geotag.desktop und die beiden Skripte nach /usr/local/bin. Stellt sicher, dass die Skripte ausführbar sind (chmod +x .../geotag.sh) und führt den Plasma Befehl kbuildsycoca5 auf um die Services neuzuladen (oder startet die Plasmashell neu).
Um zu überprüfen ob die Geotags korrekt vergeben wurden, habe ich die Bilder in Darktable geöffnet und dort unter "Other-->Map" die Kartenansicht geladen. Falls es noch einen anderen Bildbetrachter für Linux gibt, der die Bilder entsprechend der Koordinaten auf einer Karte darstellen kann wäre ich über sachdienliche Hinweise in den Kommentaren dankbar.

Ausblick

An Ideen zur Verbesserung bzw. Integration mangelt es mir nicht. Ich könnte mir beispielsweise vorstellen für jedes Bookmark eine Tastenkombination zu vergeben sodass nur noch Bilder selektiert und dann direkt den entsprechenden Ort zugewiesen bekommen. Dafür wäre wiederum ein Tool hilfreich, welches die zugewiesenen Tastenkombinationen verwaltet und eine druckbare Übersichtsseite mit der Bookmark-->Tastenkombination Zuordnung erstellt. Auch die bereits angesprochene Integration in digikam wäre denkbar.

  1. Geotagging ist natürlich mit digikam möglich nur fehlt mir das Feature "schnell" bestimmte Koordinaten auf eine Selektion anzuwenden. Das entsprechende Bugticket findet ihr, für mögliche Upvotes, hier