Die leider nur für Windows erhältliche, aber im Quelltext vorliegende Software Photomapper von copiks.com, lässt sich sehr leicht nach Linux portieren, da sie in Qt4.5 erstellt ist :

 

Während ältere Versionen von Photomapper noch problemlos unter Wine liefen, führt der Umstieg auf Qt4.5 in der Version 0.7 dazu, dass alle Schriften weg sind. Dies ist bei allen Qt4.5-Windows-Programmen unter Wine so und kann durch Verändern der Schriftgröße auf absurd große Werte oder Einstellen von z.B. Windows ME "workarounded" werden.
Deshalb ist es nun noch wichtiger eine native Linux-Version zu haben, was dank Qt4.5 und ziemlich gutem Quellcode kein grosses Problem darstellt (diffs s.u.).
Ein Problem bleibt aber : sprintf scheint unter Linux und Qt4.5 bei %f die Locale-Einstellungen zu berücksichtigen und schreibt also 3,2 statt 3.2 bei einem deutschen System, wodurch der kmz-Export defekte Dateien erzeugt.
Workaround momentan : vorher auf LANG=C umstellen.

Folgende Änderungen am Quelltext waren nötig :

 

in gpsreadingthread.h

24c24
< #include "fileformatinterface.h"
---
> #include "fileFormatInterface.h"
--------------------------------
in mainwindow.cpp
1284a1285
>   filters  << "*.so";
--------------------------------
in photo.h
28a29,30
> #include <assert.h>
> #include <errno.h>
--------------------------------
in PhotoMapper.pro
< TARGET = PhotoMapper
---
> TARGET = Photomapper
--------------------------------
Das Folgende liegt evtl. daran, dass ich unter amd64 arbeite ?!
in mapwidget.cpp
53c53
<   str += QString("addPolyLine(%1,polyline%2);\n").arg((int)(p)).arg(count);
---
>   str += QString("addPolyLine(%1,polyline%2);\n").arg((long)(p)).arg(count);
67c67
<   QString cmd = QString("removePolyLine(%1);").arg((int)gp);
---
>   QString cmd = QString("removePolyLine(%1);").arg((long)gp);
202c202
<   QString scriptToRun = QString("myAddMarker(%1,%2,%3);").arg((int)addedPhoto).arg(photoPos->lat).arg(photoPos->lon);
---
>   QString scriptToRun = QString("myAddMarker(%1,%2,%3);").arg((long)addedPhoto).arg(photoPos->lat).arg(photoPos->lon);
209c209
<   QString scriptToRun = QString("removeMarker(%1);").arg((int)deletedPhoto);
---
>   QString scriptToRun = QString("removeMarker(%1);").arg((long)deletedPhoto);
216c216
<   QString scriptToRun = QString("highlightMarker(%1);").arg((int)selectedPhoto);
---
>   QString scriptToRun = QString("highlightMarker(%1);").arg((long)selectedPhoto);
223c223
<   QString scriptToRun = QString("unhighlightMarker(%1);").arg((int)selectedPhoto);
---
>   QString scriptToRun = QString("unhighlightMarker(%1);").arg((long)selectedPhoto);