GPS Exif Tags

Updated: May 3, 2017

This is an exciting story and on-going story. I first became interested in this matter in 2008. 9 years and 10,000 hours of effort later, I am still working on this!


The subject is Geotagging. Tobias wrote to me in April 2017 to point out that several links in my article are stale. So, at the suggestion of Tobias, I have rewritten this article. Here's a link to the defective article (last modified in 2011) click here.

If you have a digital camera and a GPS device, you can automatically map your photographs. You don't need to buy a new camera. You don't need a new GPS. It'll work with any camera and most GPS devices.

The idea is simple:

  1. The GPS collects data and writes a GPX file of position and time information.
  2. The camera takes and stores images. Buried in the EXIF part of the image is the time at which the photograph was taken.
  3. My code merges the data from the GPX file as new GPS Tags in the JPG file. So the JPG files are updated (without changing any image data).

Cool, eh? I told you this was exciting! I started working on this in 2008 and gave it the name "Gps Exif Tags" as the term "GeoTagging" had not been invented at that time.

Since the 2008 article, many developments have taken place in this field. The most obvious is that phones such as the iPhone (launched in 2007) have arrived in everybody's pocket. Today these devices are equipped with GPS and Cameras. Geotagging is a default feature that requires no user effort.

In the 2008 article, the code was written in Python. The images were updated by the Exiv2 library which required pyexiv2 to be accessed from python. Regrettably, pyexiv2 is no longer available. I have become the Principal Contributor to the Exiv2 Library. The code described in the article is now a sample application for Exiv2. You can download it from The sample application geotag(.exe) doesnít need python. Itís a native executable and there are builds on for MacOS-X, Linux and Windows.

In 2014 I purchased a Nikon D5300 camera because it has embedded GPS. Itís very convenient to have the embedded GPS, however you have to keep the camera powered up to avoid waiting for the GPS to find satellites when you power up the camera. When using the GPS, I keep the camera powered up. A second or third battery is a must if youíre going out for the day. I've also found that the Camera's GPS doesn't track well in trees. There is a feature to record a "Log" which is a GPX file. You'll need code such as my geotag(.exe) geotag "blind" photos.

You can purchase an add-on GPS devices for many DSLR Cameras. The benefit of the add-on device is lower power consumption and the device can be transferred to another camera when you upgrade your camera body.

In the 2008 article, I thought displaying photos on Google Maps would become very popular.
Maps and Photos
Remarkably this hasn't happened. In fact, it has regressed. Applications such as Google Picasa which supported this have been discontinued.

In parallel with the emergence of Smart Phones, Cloud and Facebook, there has been decrease in the popularity of blogs and private web sites. These developments enable people to publish their photos with little effort. Without more effort from the user, the results are rather boring.

I have invested a huge effort in Exiv2. About 10,000 hours in 10 years. Geotagging is about 1% of what Exiv2 is about, so perhaps 100 hours in geotag.cpp Today, Exiv2 is a world-class, cross-platform C++ metadata library. I'm proud of my work and contribution to image metadata technology.

Home ......... About

Page design © 1996-2017 Robin Mills /

Updated Wednesday May 3, 2017