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.

  • 1
    "Google know where we are 24/7" No, it knows where our GPS enabled devices are when they are turned on. If I forget and leave my phone on the charger at home, Google has no idea where I am all day long. – Michael C Jul 18 '18 at 2:47
  • Google knows because you're in the background of a picture someone took and face recognition identified you. – xiota Jul 18 '18 at 2:59
  • 1
    I spend much of my time out in the sticks far from any source of electricity, much less other humans and their cameras. Unless google can use facial recognition to identify me from orbit I doubt it knows where I am if my phone is not with me. Even then, there's often no phone signal close enough to my location to allow the phone to locate itself. – Michael C Jul 18 '18 at 3:02

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

| improve this answer | |
  • 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  .
| improve this answer | |

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

| improve this answer | |
  • 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

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.