New app: GeoTag Camera

Abstract

Please introduce the functions and usage of your app in summary, and also attach some screenshots.

GeoTag Camera is a GPS-stamp camera for field work (site inspections, surveys, NGO and student field records). Each photo gets a compact stamp with location, address, time, accuracy, altitude, bearing, weather and a small map, burned into the image and also written to EXIF. Every photo is signed on the device, so the app can later verify that the image and its location were not edited.

  • Projects: shoot into a project, filter the gallery, move photos
  • Sticky note and fixed custom text on the stamp (for example "Pole 12, north wall", a contract number)
  • Export locations as CSV, KML (Google Earth) or GeoJSON (QGIS, ArcGIS)
  • PDF site report with an overview map and re-verified photos
  • Map thumbnail rendered on the phone with MapLibre + OpenFreeMap vector tiles: no API key, offline areas can be downloaded
  • Field and Professional setups, chosen at first start

Screenshots:

1 2 3 4
5 6 7 8

Please elaborate why you wrote this app. Please highlight the unique functions it provides over other similar apps in F-Droid.

The popular GPS-stamp cameras are closed source, full of ads and trackers, and need Google Play services. I wanted an open one that field workers can trust. Compared with what F-Droid has today (for example Open Camera, which can stamp coordinates as text):

  • On-device signature per photo and a Verify screen that detects edited images or changed locations, including for photos picked from the gallery
  • Address, map thumbnail and weather in a compact stamp card, not just coordinates
  • Projects, CSV/KML/GeoJSON export and PDF site reports for professional use
  • Works without Google Play services (foss flavor uses Android LocationManager); no ads, no analytics, no trackers

Upstream author: me (Konko Maji).

Reproducible builds: F-Droid's pipeline on this MR reports "compared built binary to supplied reference binary successfully" and "supplied reference binary has allowed signer eae98480...26f797" for all three ABIs (71, 72, 73). Upstream CI checks every release on Debian bookworm/OpenJDK 17 and trixie/OpenJDK 21: https://github.com/konkomaji/geotagcamera/blob/main/.github/workflows/reproducible.yml

ABI split: one build per ABI (-Pabi), versionCode = 10 * base + ABI digit (1 armeabi-v7a, 2 arm64-v8a, 3 x86_64). MapLibre ships 8-11 MB of native code per ABI, so a split APK is about 15 MB instead of 40+.

Libraries and network: MapLibre native libraries come from Maven Central (BSD-2). Network use: OpenFreeMap tiles, Open-Meteo weather, Android's geocoder; all optional, the camera works offline.

Checklist

Policy

  • The app complies with the inclusion criteria.
  • The original app author has been notified (and does not oppose the inclusion). I am the author.
  • The upstream app source code repo contains the app metadata in a Fastlane or Triple-T folder structure. The summary and description must be included and images, icon, and changelog should also be provided for better user experience. The en-US locale must be included.

Docs

Merge Request Setup

Metadata

  • Metadata must be put in metadata/<applicationId>.yml.
  • Metadata must be a valid YAML file.
  • Metadata must use LF as line ending.
  • Don't add summary/description/changelog/images or anything that should be provided in upstream repo. Please check the Changes tab to make sure there is no other unrelated files added in the MR.
  • Releases are tagged and auto update is enabled unless there is a special reason.
  • There is an issue tracker and contact info of the author so that we can report bugs and contact the author.
  • An AuthorName must be added. It doesn't need to be the real name.
  • External repos are added as git submodules instead of srclibs. You can update git submodules without opening an MR in this repo and the submodule is covered by our scanner.
  • Enable Reproducible Builds. We'll use your signature for improved security/reliability, also allowing users to switch between different channels. Do note that if you don't enable reproducible build then the apk will be signed with our key so you can't enable it later. If you can't enable this, please add the reasons here.
  • Setup abi split if the APK is large and the splitted ones can be much smaller.
  • Only the latest versions should be kept in the metadata before it's merged. If you update the metadata, please replace the old versions with the new ones.
  • Don't add any disabled versions in the metadata.
  • The commit field should be the full hash. Please don't use tag or branch in commit.

Pipeline

  • All pipelines should pass.
  • All warnings and errors in the Reports tab should be fixed or explained.
  • F-Droid CI runners are under GitLab's FOSS program, so there's no need for you to pay for any CI time. If Gitlab starts asking for phone numbers or credit cards don't submit anything, just leave a note in the MR so we know we need to trigger the CI.
Edited by Konko Maji

Merge request reports

Loading
Loading