Bilderspur transforms Google Earth into a photo book with only very few effort. An example should speak for itself: Biking tour Aachen-Paris photo diary
This file has been generated by a current development version of Bilderspur, as Bilderspur 20061117 is not able to create hyperlinks to images in different Gallery2 foto albums. The file also contains the track recorded by our GPS receiver and which provides the source data to Bilderspur for positioning the images.
While viewing the photos you should zoom sufficently close to be able to spot the photographed objects - like houses or vegetation - on Google's air photographs.
To geolocate your fotos, you obviously need to know the required location information for each picture. Some pretty expensive digital camerad already contain a GPS receiver and embed the location information within each image.
However, there's also a cheaper way, achieaveable with more common equipment: Many common navigation systems or stand alone GPS receivers are able to record routes. At our bike tour we used a small mobile Garmin GPS receiver which was mounted at one of our bikes. There is software which can correlate your digital fotos with the recorded route using the time each foto was taken, which is embedded in each image by the digital camera. We used the free gpscorrelate written by Daniel Foote for this task.
As the correlation is purely based on the timestamps stored within the image files, these timestamps should be pretty accurate. So either you sync your digital camera's embedded clock with your mobile GPS receiver's before the tour, or you have to fix the timestamps later, which is significantly more work. As we used four different digital cameras - all with differently skewed clocks, of course - on the tour, one for each tour member, it required quite some fiddling with the time stamps to get the correlation right... ;) To avoid such a hassle in the future, I wrote a tiny script which is able to fix image timestamps nearly automatically and with pretty high precision and accuracy.
If you've somehow managed to get the correct timestamps of each foto, gpscorrelate will correlate your digital fotos and your recorded track data, storing the position where each foto was taken directly into the image file's meta data tags. This will solve the famous question where your fotos where taken once and for all - and completely independant of bilderspur. ;-)
The most important prerequisite is Google Earth, of course. Otherwise you'll like bilderspur's output only if you love looking at angled brackets. ;)
Bilderspur does not require any unusual software to be installed as a prerequisite. As a pure Python script it should run everywhere where a Python 2.4 interpreter (or later) is available. It also requires two Python libraries for its calculations, namely PyNumeric for vector calculations and PyImaging for preparing the thumbnail preview images which can be embedded into the generated KMZ files.
For example, if you're a Debian Linux user, all you have to do to prepare your system for running bilderspur is running aptitude install python python-imaging python-numeric as root - if the required packages are not already installed anyway.
I tested the program with Linux only, but it should also work at Microsoft .NET platforms using Microsoft IronPython or any Windows system using Python for Windows.
Currently, bilderspur is a pure console application, however it should be rather straightforward to add a graphical user interface if someone wants to take on this task.
Basic usage is pretty simple:
./bilderspur.py -o test.kml *.JPG
This command will read all JPEG files in the current directory, analyzes the contained GPS coordinates and writes an uncompressed KML file test.kml
as its output. If you open this file using Google Earth each foto's position will be indicated by a clickable placemark icon at the globe.
However, bilderspur is much more powerful, of course. Instead of generic icons, it can place tiny thumbnail images of your fotos along the route, fotos which where taken very close together can be represented by a single cluster thumbnail
and much more. The generated thumbnail images can also be packaged into a compressed KMZ file, creating a self-contained foto index that can be loaded quickly. Virtually all aspects of KML-/KMZ-file generation can be influenced, and newer bilderspur versions can be extended using a plugin mechanism to allow arbitrary control over the generated image detail pages. bilderspur.py -h will list all available command line arguments in great detail.