Nearly all self-hosted location tracking Android applications are based on server-client architecture: the one on the phone collects only a small points, if not only one, and sends it to a configured server. Traccar1, Owntracks2, etc.
While this setup is useful, it doesn’t fit in my static, unless it hurts3 approach, and it needs data connectivity, which can be tricky during abroad trips. The rare occasions in rural Scotland and Wales tought me data connectivity is not omnipresent at all.
There used to be a magnificent little location tracker, which, besides the server-client approach, could store the location data in CSV and KML files locally: Backitude4. The program is gone from Play store, I have no idea, why, but I have a copy of the last APK of it5.
I have an exported preferences file available7.
The syncthing configuration is optional; it could be simple done by manual transfers from the phone. It’s also not the most simple thing to do, so I’ll let the Syncting Documentation8 take care of describing the how-tos.
And the script itself - please replace the INBASE, OUTBASE, and BINGKEY properties. To get a Bing key, visit Bing9.
BINGKEY="get a bing maps key and insert it here"
Once this is done, the OUTBASE directory will be populated by .gpx files, one per day.
GpsPrune is a desktop, QT based GPX track visualizer. It needs data connectivity to have nice maps in the background, but it can do a lot of funky things, including editing GPX tracks.
Keep it in mind that the export script overwrites the GPX files, so the data needs to be fixed in the SQLite database.