Automatically geotag your photos

About

This is a software for displaying photos on top of Google Maps.
It constructs a path from data received with a GPS receiver. Then it finds the location of photos (and videos) by matching their timestamps to the timestamps of the path generated from GPS data.

Screenshot:

See also a live example. This might load for a while because there are so many photos on the page.

The example is a photo album of Athens, Greece from the Grand Europe Tour me and my friends did in the summer of 2006. Don't forget to check out the video clip of a funny guard in front of the parliament house. He reminds me of the Monty Python sketch "The Ministry of Silly Walks" :)

Features

The software has several advanced features:
  • Grouping of nearby photos
  • Removal of unnecessary GPS points
  • Interpolating photo positions from nearest known GPS locations
  • Automatic selection of best zoom level
  • Support for video clips, using JW FLV Player

How to make your own show

First you need a GPS receiver, from where you can download your path to a computer. I'm using the Royaltek RBT3000 GPS logger. You also need a digital camera and a Linux computer.

Setup

First you need to install Python 2.4 with the Python Imaging Library on your Linux computer. Install also jhead. If you want to have video clips on your page, you also need to install FFmpeg and FLVTool2.
Then download geotag.tar.gz and unpack it to some directory.
Next you should copy the extras directory to your web server somewhere. Then it's time to edit geotag.py to include the pointer to the extras-directory, your google maps api key and the difference between your camera's time and your GPS's time.

Usage

Copy the NMEA data from your GPS to .nmea files and the photos from your camera to the geotag-directory. Then you can just run the software
./geotag.py
and wait while it creates you the album to the webpages-directory.
You can also set the time interval, which you want to present on the webpage. For example
./geotag.py 30.5.2006_12:00:00 1.6.2006_13:02:47 athens
has been used when creting the example page from Athens.

There is also a web application which is a spin-off of this project, where you can measure distances on Google Maps. It's located here. Another Google Maps application of mine is the hybrid map server.