The screenshot above shows how I geoencoded the images in yesterday's post about a train and boat ride.
Today I'm releasing a beta version of a new plugin for Adobe Lightroom, “Jeffrey's GPS Support”, that adds support for Geoencoding photos from within Lightroom. There are more features yet to add, but it's already polished enough for daily use, offering even the ability to geoencode speed and bearing.
Sadly, Lightroom does not allow for a plugin to easily update the “real” per-image GPS information in the Lightroom database, but this plugin takes an approach that should allow geoencoding to be seamless for many. The plugin itself maintains its own set of “shadow” GPS data for each image, allowing you to view and change the data as you like. On export, the plugin inserts the GPS data into the image (into the copies of the images made during the export), so that your exported images are properly geoencoded as well.
The plugin is simple to use: after installing it (you can download it from the plugin's home page; install instructions are there as well), select the images that you'd like to geoencode, then invoke the “Geoencode” item from the File > Plugin Extras menu....
This brings up the screen shown at the top of this post. You can encode from a tracklog (a GPX file), or you can specify a static location to assign to each image. You can also geoencode between two endpoints.
It's easiest to geoencode from a GPS unit's tracklog, and when done that way, speed and bearing are also calculated. When the tracklog datapoint granularity is not to the second, the plugin interpolates between the two nearest datapoints. (Personally, I use a GPS unit that allows me to keep a tracklog updated at one-second intervals.)
If you don't have a tracklog, you can specify locations by pinpointing them in Yahoo! Maps or Google Maps, then cut-n-pasting the url. You can also specify a GeoHash, or a latitude/longitude pair in one of a variety of formats, such as:
35.011065, 135.782201 35° 0' 39.83" N, 135° 46' 55.92" E 35 0 40, 135 46 56
See the “Help:Locations” tab in the Geoencoding dialog for more examples.
After geoencoding, you can view the results using the “Geoencoding” metadata view preset, as highlighted in this screenshot showing an image taken on a train...
In the screenshot, the lack of data below the “Real EXIF GPS Data” header means that the image was not geoencoded prior to being loaded into Lightroom, and so Lightroom's library has no GPS data. If you only ever geoencode with this plugin, that section will always be empty. I place it there, though, so that those who previously geoencoded their images with other methods (prior to loading into Lightroom) will be able to use the same metadata preset to view an image's geoencoded data.
NOTE: There seems to be a bug in Lightroom that causes the shadow data in the “Geoencoding...” section to sometimes not appear. Sometimes it does. It's very frustrating. (See this comment). If it's not showing up, try switching to the “All Plug-in Metadata” view.
Because the GPS data is kept as “shadow GPS data” by the plugin, it's not included in files on export unless you turn on the “Shadow GPS Injector” post-process export action. It's enabled turning on the checkmark highlighted in red below, which then includes the section highlighted in green....
Once turned on, it is active for every export, including my “Export to...” plugins for Flickr, Zenfolio, SmugMug, Facebook, and PicasaWeb (all available on my Lightroom Goodies page).
Note: if you have export presets, you'll want to rewrite them with this post-process action turned on. That means selecting the preset, clicking the checkmark as highlighted in red above, then right-clicking (or option-clicking on the Mac) the preset name and selecting “Update with Current Settings”.
This plugin's geoencoding is understood by my GPS Proximity Search plugin, as of version 20081029.3. It still understands “real” geoencoding as well, but gives preference to the shadow data when an image has both.
Also, note that I removed the “View location in...” menu items from the proximity-search plugin and brought them here, as well as added a bunch of new ones: Yahoo! Maps, Google Maps, Google Earth, Flickr, Panoramio, and GeoHash.org. These, too, now understand both kinds of GPS data.
Yet to Do...
In the near future I plan on adding some things, including....
The ability to convert the shadow GPS data into “real” GPS data.(UPDATE: this was added in version .9)
- The ability to read a tracklog directly from a GPS unit.
I'd love to hear more ideas as well, if you have them.