Google know where we are 24/7. If my camera does not have built-in GPS, but I would like to geotag my photos, is it possible to use the location history to automatically tag photos with my GPS coordinates at the time they were taken? If so, how?

I am not asking how to use Google Maps to select locations with which to tag photos.


The procedure I use is:

  1. Go to your Google Timeline
  2. Select day
  3. Click on gear icon, export this day in KML
  4. Convert the file to GPX (I use GPSBabel)

    gpsbabel -w -r -t -i kml -f history.kml -o gpx -F history.gpx
  5. Get (if you do not have) Geotag software

  6. Install (if you do not have) JVM
  7. Start Geotag software
  8. Add your images
  9. Load track from file
  10. Adjust camera time
  11. Save new locations (I save to XMP)

But as Google do not write in timeline GPS location marks so often I will no rely on this info for image geotagging. In my test I get 180 point for 8 hours trip (with other mobile software I get around 25000 points). Of course someone can interpolate the location, but is not so precise. Also Google (in my case) do not store the elevation.

Edit: I just now find another tool which can use your location history and directly add location info to your photos. Web site, python tool itself

  • The command I see is: gpsbabel -w -r -t -i kml -f history-2018-07-15.kml -o gpx -F out.gpx (not sure about parameters, I use graphic interface). The point is you should set the time of images to be as it is from Google (point 10) – Romeo Ninov Jul 17 '18 at 8:10
  • I think it does not working because Google Timeline info has too many gaps. Software cannot find times that it thinks are close enough to match. – xiota Jul 17 '18 at 8:40
  • @xiota, correct. I mention it in edit of my answer. I will recommend you to use dedicated GPS logger (software or hardware) – Romeo Ninov Jul 17 '18 at 8:47

Google Location History KML files may be downloaded from:

  • Google Timeline, as RomeoNinov describes. The problem with these files is the timestamps and trackpoints are spread too far apart for some software to interpolate.

  • Google Takeout. Takeout KML files appear to have altitude information and more frequent recordings than the Timeline KML files.

Geotags may be added to images with exiftool, which can read KML files directly. It is also able to interpolate timestamps and locations without restriction. In the following command, replace history.kml with the location of your KML file, and replace -00:00 with your time zone.

exiftool -if 'not ($GPSLatitude or $GPSLongitude)' -geotag history.kml '-geotime<${createdate}-00:00' -r -ext jpg  .

Windows users may need to use double quotes. Different file extensions may be specified with additional -ext flags.

  • I guess your example "-00:00" is for negative timezones like "-06:00". For positive timezones it's "+07:00" is that correct? – Underlines Apr 25 at 9:51
  • I believe so. I would have to look at the exiftool documentation again to make sure. – xiota Apr 25 at 21:14

If you don’t like commandline tools and prefer windows, you can give Enny GEOTagger a chance. Enny GEOTagger in Windows Store

  • I do like command-line tools, and I don't prefer Windows. However, there may be others who would give your software a chance. – xiota May 14 '19 at 8:44
  • This does only support JPG/JPEG, no DNG/RAW support. – Underlines Apr 25 at 9:50

If you don't like commandline tools, you can also give a try with Darktable. (a free and open-source photography application software and raw developer) https://www.darktable.org/usermanual/en/geotagging.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.