Jeff Mesnil
Weblog · About

Review of gps4cam - iPhone GPS Tool for Cameras

February 20, 2011

I want to have GPS data for pictures taken with my Nikon camera and I looked at different tools to achieve that.

At first, I was using Aperture's Places to manually locate the pictures but this is a long and tedious process. Sometime, I shot a picture with my iPhone (which contains GPS data) and import them in Aperture to geotag my camera pictures. But more often than not, I forget to do that and have to do it manually.

I could add a GPS device to my camera directly but they are expensive, bulky, and drain the battery. Why buy another GPS device when I always have my iPhone with me?

After some research, I settled on using gps4cam and I am very happy with it.

gps4cam comes in two parts:

When I go outside and start shooting, I just need to run the iPhone app and start a new trip. The app supports multitasking, so I can exit the app, put the phone in my pockets and not worry about it anymore. I can focus on shooting instead.

Periodically, the app will capture my GPS location. The app is configurable and you can specify the frequency, to use GSM to triangulate the position instead of GPS (useful when abroad), etc.

At the end of the trip, when I am done shooting, I export the trip which generates a QR Code.

I then shoot this QR code with my DSLR. This picture contains all the GPS information captured during my trip. The fantastic idea of using QR codes is that there is no need to synchronize the iPhone and camera clocks: the QR code generated by the iPhone and shot with the other camera allows to know the clock difference between the two devices and deduce where the camera photography were taken.

The last step to do is to use the desktop application which reads the QR code and put the GPS data in the other pictures' EXIF metadata1.

Finally, I can import the pictures in Aperture or any other software and voila! My pictures are (almost automatically) geotagged.

The iPhone is simple, non-obtrusive and a steal at 1.59€ (or $1.99). It is a pleasure to use it and I haven't noticed a specific battery drain.

On the opposite, the desktop application needs more spit and polish. It is a Java application, I use it on my MacBook and it does not feel at home. The UI is not consistent with the OS (the progress is shown with a modal dialog window instead of a sheet or a progress bar) and it is too slow.

As I understand it, the desktop applications takes 3 steps:

  • analyze the pictures (to find which one contains a QR code)
  • retrieve the GPS data from the QR code picture
  • copy the pictures and store the GPS data in their EXIF metadata

I don't understand why it should take several minutes to perform these 3 steps (for a trip where I took only 40+ pictures). I suppose the performance could be improved by identifying faster the QR code picture. One way could be to let the user chooses the QR code picture (as I propose in the mock screenshot below by using an Image Well):

This would work fine if there is only one "trip" (i.e. one QR code) in the pictures but this will not work if there are many of them...

The desktop application also needs to improve the user experience. I put GPS data directly in the pictures on my SD card before I import them. Every time, the application asks me if I am sure to do that and I must confirm.
Instead, the application should let me check a box to say that I don't want to be warned next time and remember it. If anything bad happens, it is my fault, I explicitly told the application to not warn me anymore.


  • unobtrusive and configurable iPhone application
  • trips can be exported as GPX (and visualized in Google Maps, Google Earth, etc.)
  • inexpensive


  • desktop application's UI needs more attention (I would prefer a native Mac application)
  • desktop application takes too long to process pictures and store GPS data

I hope that the cons will be fixed in future releases.
But as it stands now, I heartily recommend gps4cam to any iPhone user who wants to geotag automatically their pictures taken with another camera.

  1. I specify the same directories as input and output to store GPS data directly on the pictures on the SD card.