🚧 Content in progress — We're publishing this page now to give you a sneak peek. Even better very soon!

PowerDirector

I have 20k photos from a trip around the world. Each photo contains GPS coordinates. I would like to find an application that would allow me to import photos and recreate the route of my trip using GPS coordinates. In the event that this type of application does not exist I would be prepared to write the script in Golang to achieve this. I would also like to use the text associated with each photo.

Great project — 20k photos with GPS, it’s perfect for reconstructing a rich and navigable route. I’ll first summarize the ready-to-use solutions that you can test right away, then I’ll give you a technical plan + a starting Go script (functional extract) to extract EXIF, sort by date, deduplicate and export to GPX/GeoJSON/CSV ready to import into My Maps / Mapbox / Leaflet.


#1) Existing solutions to test (quick)

Practical conclusion: if you just want to view / share quickly → try PhotoPrism (if self-host) or My Maps (CSV/KML). If you want full control over the route (chronological order, simplification, image hosting), I recommend exporting first a GPX/GeoJSON file from a script then importing it into Mapbox/Leaflet/MyMaps. ([docs.photoprism.app][1])


#2) Scenario if you want to code (Go) — recommended workflow

Objective: from 20k files (with EXIF GPS + timestamp + associated text), produce:

Steps:

  1. Scan the folder recursively to list files (jpg, heic, png, mp4)
  2. Read EXIF: GPSLatitude, GPSLongitude, DateTimeOriginal (or CreateDate). If GPS missing → ignore or estimate.
  3. Extract the associated text: if you have a linked text file (eg same-name.txt) link; otherwise apply OCR (Tesseract) or cloud OCR to extract text from the image.
  4. Normalize timestamps (UTC) and sort by timestamp.
  5. Deduplicate / cluster: merge photos taken at the same position/interval to keep a readable flow (group photos taken in a few minutes at the same point).
  6. Generate GPX/GeoJSON/CSV; option: polyline simplification (Ramer–Douglas–Peucker) to reduce points.
  7. Hosting thumbnails and producing a photo_url column for popups.
  8. Import into My Maps, Mapbox, Leaflet or PhotoPrism as needed.

#3) Important technical points for 20k images


#4) Starter Go script (functional, reasonably complete)

This script: browses a folder, reads EXIF GPS+timestamp, sorts, deduplicates close neighbors, and writes a route.geojson + points.csv. Dependencies:

Install: go get github.com/rwcarlsen/goexif/exif github.com/tkrajina/gpxgo/gpx

photo2route_with_heic_videos_gpx_thumbs.go

Notes:


#5) What to do next (integration/display)


#6) Immediate practical recommendation

  1. If you want to quickly test without coding: install PhotoPrism and index a subset (e.g. 1k photos) to see the map and the UI. ([docs.photoprism.app][1])

  2. If you want to publish a shared web map: generate route.geojson via the script above and import into Mapbox/Leaflet/My Maps. (Google Help)

  3. If you want me to step up now: I can

    • adapt the Go script to handle HEIC/videos and write GPX too,
    • add export of thumbnails (example command ffmpeg/sips on macOS) and generate thumb_url CSV,
    • add simple OCR step (Tesseract) and upload option to a bucket.

Tell me which option you want (test PhotoPrism, I want the full ready-to-run Go script with HEIC+GPX+OCR, or a Mapbox/Leaflet guide to display route.geojson) — I can provide you with the exact code/commands right away.

[1]: https://docs.photoprism.app/user-guide/organize/places/?utm_source=chatgpt.com “Places” [2]: https://www.houdah.com/houdahGeo/?lang=en&utm_source=chatgpt.com “HoudahGeo 7–Photo & Video Geotagging for Mac”