thoughtasylumTOOLBOX Preview Guides Use offline Automate Feedback

Tools › Maps

Photo Geotagger

Give photos from a camera without GPS their locations from a track your phone or watch recorded at the same time: each photo's time is matched to the track, and its location written into the JPEG without changing the picture. Or save the locations as CSV, GPX or KML.

About this tool What it's for, how to use it and an example

What it's for

A camera without GPS records when each photo was taken but not where. If your phone, watch or GPS recorded a track at the same time, the place you were at each photo’s moment is in that track. This matches the two and writes the location into each photo, so photo apps and maps can show where it was taken.

For example, after a day’s walk with a camera, export the walk from your watch’s app as GPX, choose it and the day’s photos here, and save the photos back with their locations.

How to use it

Choose the Track (GPX, KML or GeoJSON, with times on its points, as recording apps export them) and the Photos (JPEGs; choose several at once), or drop each on its box. The table shows each photo’s time in UTC and where the track puts it, between the two track points either side.

  • Camera’s time zone: cameras record local time without a zone. It’s filled from the first photo that records its own (newer cameras do), and Use the time zone a photo records applies each photo’s own.
  • Camera clock fast by: if the camera’s clock was wrong, the number of seconds it was ahead (minus if behind). Photograph a phone’s clock with the camera to find it.
  • Furthest from a track point: photos further than this in time from any point aren’t placed.

Save the photos with locations saves one JPEG, or a ZIP of several, with the location, height and GPS time added to their EXIF; photos that already have a location are left alone unless Replace locations is ticked. Save as CSV, GPX or KML lists the locations instead, as waypoints named after the photos.

Example

Take any JPEG from a camera or phone and open it in Photo Metadata. Note when it was Taken, such as 2026:05:01 10:45:00, and its Time zone (taken) if it shows one, such as +01:00. Take the zone away to get the time in UTC: here, 09:45.

Save this as walk.gpx, with the date and the two times changed to 5 minutes either side of your photo’s UTC time:

<gpx version="1.1"><trk><trkseg>
<trkpt lat="51.51" lon="-0.10"><ele>20</ele><time>2026-05-01T09:40:00Z</time></trkpt>
<trkpt lat="51.52" lon="-0.08"><ele>30</ele><time>2026-05-01T09:50:00Z</time></trkpt>
</trkseg></trk></gpx>

Choose the track and the photo here. If the photo didn’t show a time zone, type it in Camera’s time zone; if it’s a phone photo that already has a location, tick Replace locations photos already have. The table shows the photo’s UTC time and 51.515000, -0.090000, 25 m, halfway between the two points, 5 min 00 s from a point.

Good to know

Only JPEG photos can be written to; for HEIC or RAW files, save the locations as CSV or GPX and use your photo app’s import. The picture itself isn’t re-compressed, and the rest of the EXIF (maker notes included) is kept as it was. Locations are straight-line guesses between track points, so a sparse track gives rough ones.

Everything happens in your browser; nothing is uploaded.

Guide: Sharing a walk or ride route safely

Private: this tool runs in your browser. Nothing you type, paste or choose leaves this page.

Saved you a few minutes? Say thanks with a coffee.

Something wrong with this tool, or missing from it? Report a bug or suggest a feature.

↑ ↓ move↵ openesc close