Travelling with a GPS and a digital camera

I just read this interesting post after finding a link to it over at brilliantdays. Some more searching and clicking, I also found this, and I came to think of the following story:

A couple of years ago I traveled through Alsace in France by bicycle. I had my GPS attached to the handlebars and took lots of pictures with my digital camera during the trip.

When I came home, I transfered the pictures to my laptop as usual. I also transfered the GPS-log with all the coordinates to the same machine. I started thinking about how nice it would have been if the GPS was built into my camera so that I could have placed all my pictures on the map.

Thinking a bit further, I realized that I actually had the data to do exactly that:

1. A track from the GPS. Basically a long list of time stamps and GPS coordinates
2. Huge amounts of pictures. All of them time stamped
3. OZI Explorer software, supporting links to pictures in the maps

So, I have data telling me where I was when. And I have pictures telling me when they where taken. There is a link here: when.

I figured, how difficult could it be to match the time stamps from the pictures to the closest time stamp in the GPS-log? That would actually place the picture quite accurate. Well, that was not too difficult. I imported a list of the pictures and the complete GPS-log into Excel. A little VBA code, and voila: a file that was compatible with OZI-explorer placing all my pictures amazingly accurate on the map.

You can click the picture in this post to see one of the results.

For the people that are familiar with excel and visual basic for applications (VBA) you can download the very undocumented excel sheet with the code that match gps points with pictures here:

If you manage to import a list of pictures with time stamps in the sheet called pictures and a tracklog into the sheet called track, keeping the right data in the right coloumns, running the script called PlacePics2() will match the closest track point to each picture. Running the script called GenerateOziMapComments() will generate a text file with the information needed to place the pictures on a map in OziExplorer. The last script, cleandups() is simply a script that you can run if you want to delete the rows where several pictures is placed on the same GPS-point.

This whole process is very undocumented, but if you want to try it out please do not hesitate to ask questions through comments here. If people show any interest I will consider a major upgrade of the documentation!

Travelling with a GPS and a digital camera