In one of my previous posts I showed how to embed GPS coordinates to jpeg images using C#. It is mainly useful if you're using a maps+pictures services such as panoramio.com or everytrail.com or any other kind of mapping and pictures solutions.
My GPS buddy is a nifty HOLUX M-241 GPS among the regular location, speed, direction, time it can also records tracks, and on top of that it's rather cheap.
But unfortunately its image GPS coordinates embedding feature doesn't work so well.
So here is a little app to solve do that , it is basically an image GPS coordinates tagging solution. And it can be used with any other GPS that tracks data and can export the data as KML files.
Here are the 3 simple steps to use it (Please note that this application is just on its Beta stage, it doesn't come with any warranty, so use at your own risk)
- GPS and Camera Time Sync - Before the shooting session starts, make sure your camera time is synced with your GPS time - "synchronize your watch gentlemen". This is critical to couple between the GPS sample and the appropriate picture that was taken at that point. Also make sure your GPS sample rate is as frequent as can be (I for example, take a waypoint record every second)
- Shoot - Go out and take some pictures. Download your pictures to a folder, and export your waypoints as a KML file (hopefully this app would support more formats in the future)
- Geotag - Run the application, show it where the pictures folder and KML file are, hit the GO button.
And that's basically it, now your photos are tagged with their relevant GPS location. Once you upload them to any of the services listed above , they would be automatically placed on the map.
Since this is a technology blog, I feel obligated to share a few words on the technology. This solution is actually being deployed with the ClickOnce technology. Here is a quote of what it is from MSDN
"ClickOnce is a deployment technology that allows you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. ClickOnce deployment overcomes three major issues inherent in deployment..."
One of the advantages of this feature that fits like a glove to this solution is that it comes prebuilt with an update check mechanism (as seen in the image above). You can configure it to look for newer versions each time the application starts, and if there is , it automatically download and installs it on the client machine. Developing this functionality from scratch can be really tedious. If you're into releasing small foot print, specific focus solutions, I strongly recommend reading more about it. It's not that it is perfect, ClickOnce has it's own issues, but for most cases (especially for these kinds of micro solutions) it will be enough to take the overhead of working on an additional setup feature.