Lightroom “GPS Proximity Search” Plugin

I'm releasing today a plugin for Adobe Lightroom 2.0 or later that allows you to perform a proximity search based on the locations geoencoded into your images. This adds to my stable of Lightroom plugins listed on my Lightroom Goodies page, and is the second that's not a vanilla “export to...” plugin (the other being my Metadata Wrangler).

I started writing this the other day after wanting to illustrate my Perfect Weather for a Snooze on a Park Bench post, but couldn't find among the 30,000 images in my library some of the Anthony-swinging pictures that I knew I had. Thinking about how to find them, I had an epiphany about how to get around a limitation of Lightroom's plugin infrastructure, thereby making a proximity-search plugin practical.

Geoencoding Your Images

To be clear up front: this plugin works only with images that are already geoencoded, and does not itself provide any way to geoencode images. If you'd like to add GPS data to images, see my geoencoding features in my GPS Support plugin.

Proximity-Search Results

Before getting into the details of how a search is performed, I'd like to quickly show the results of a search. As part of the search process, the plugin attaches some custom metadata to each image, so that once completed, you can view the results like any other image metadata.

Here's an example of the result metadata added for a single image that was subject to a search:

The metadata added by this plugin is highlighted in green above. To view it, you first have to switch to the “All Plugin Metadata” view in the Metadata Panel, as highlighted in red. (It's on my overwhelmingly long to-do list to update my Lightroom Metadata Viewer Preset Builder to allow for custom plugin metadata like this.)

As you can see above, the plugin indicates how far the image's geoencoded location is from the search location, what I've decided to call the “search epicenter”. The distance in meters is always listed, but I also try to write the appropriate feet/yards/miles as well.

The “Epicenter” item itself is a clickable link to a map showing the location used as the epicenter of the search (the location, in this example, 394 meters south-east from this image: according to the results shown above, this image is 394 meters at a bearing of 38° – that's north-east – from the search epicenter).

The “Within Range” item is perhaps the most important, and is explained later in this post.


You can download my GPS Proximity Search plugin from its home page, on which you'll also find the installation instructions.

This plugin supports one-click upgrading, as described on the install-instructions page.

(Each release also has an expiration, to encourage upgrades to pick up bug fixes. This is mostly for my own self preservation, because I get a lot of comments and email about bugs that have already been fixed in newer versions.)

Performing a Search

To begin a search, invoke the “GPS Proximity Search” item in the “Plugin Extras” File menu...

That in turn brings up the main search dialog...

The dialog has four main sections:

  • Images to Search...

    You can always search the entire catalog, but if you wish to narrow the search to a specific set of images, you can select them before invoking this dialog.

    If you have previously run a search, the plugin will using the performance timing from that to estimate the time needed for this search.

  • Search Epicenter...

    The “epicenter” is the location from which all distances and directions are measured. If an image had been selected when the search dialog was brought up (and if it is geoencoded), its location is the default epicenter. If multiple images are selected, the active image (the "most selected' image) is the default if it is geoencoded.

    As options, you can always enter a latitude/longitude manually, or cut-and-paste a URL from Yahoo! Maps or Google Maps.

  • Area of Interest...

    One's goal in doing a search is likely to find images that are close to the target epicenter location, so this section allows you to specify what “close” means for your needs. Images within that distance are marked “Within Range: Yes”, while others (including images that are not geoencoded) are marked “Within Range: No”.

    After the search, you can filter on the “Within Range” item in Lightroom's Library Filter, thereby showing only the images that are, as far as you are concerned, “within range”. (I'd like to have the plugin switch to that view automatically, but alas, Lightroom's plugin infrastructure does not allow for that.)

  • Reporting...

    You can select what kind of map url you want the “Epicenter” metadata item to be. This is to allow you to remember where the center of the search was after the fact, in case you're prone to “senior moments” like me.

When you actually launch a search by clicking on the Begin Search button, a progress bar will pop up and remain until the search is complete. Like my export plugins, it calculates and displays an ETA, which can be useful for long searches.

When the search is complete, a small dialog pops up with some summary results...

Note that as of Lightroom 2.1, you can't actually filter on “Direction” due to what I assume is a bug in Lightroom. If I find a workaround, I'll push a new version of my plugin.

Bonus Menu Items

As a bonus, I've thrown in two other Library Menu items (in “Plugin Extras”, alongside “GPS Proximity Search”, as seen in the menu screenshot above):

  • View location in Google Earth
  • View location at Panoramio

They can be invoked while a geoencoded image is selected, and they launch Google Earth (if you have it installed), or bring up Panoramio in your browser.

These have nothing to do with the proximity search, and I may pull them from this plugin if I ever make some other kind of “GPS Stuff” plugin.



You can download the plugin here: Jeffrey's GPS Proximity Lightroom Plugin.

All 14 comments so far, oldest first...

Thanks for that great new plugin !

— comment by Florent Bouckenooghe on October 19th, 2008 at 12:29am JST (15 years, 9 months ago) comment permalink

Excellent idea for a plugin! As for geocoding inside of Lightroom, I would have put a small amount of money that it was going to be included in LR2… and I’m very disappointed that it isn’t. There seems plenty of ways outside of LR to do it so it can’t be THAT difficult (says the non-programmer) and if they already include a slot in the metadata to display coordinates and link to a map… why not allow you to enter it?!

Should it ever be on your to-do list and also get accomplished, I’ll be one of the first to download!

Start downloading: Jeffrey’s GPS-Support Plugin 🙂 —Jeffrey

— comment by JasonP on October 19th, 2008 at 2:02am JST (15 years, 9 months ago) comment permalink

Thank you very much especially for the Google Earth extra – been wanting that forever. Now it is easy without cutting and pasting.

— comment by Daniel Kabat on October 19th, 2008 at 2:11am JST (15 years, 9 months ago) comment permalink

Very cool plugin. I have been fascinated with goecoding and I try to do it to all the photos I take. This will be a handy addition to the other great plugins you have written. Keep up the good work!

— comment by T.J. Powell on October 19th, 2008 at 6:01am JST (15 years, 9 months ago) comment permalink

I agree completely with Jeffrey here, the fact that Lightroom doesn’t support geotagging yet is frustrating, as it is also disappointing not to see serious email functionnalities in this software.
This is beyond my understanding. BTW, thanks again for the good work, Jeffrey.

— comment by Gilles on October 20th, 2008 at 1:59pm JST (15 years, 9 months ago) comment permalink

Another great plug-in, thank you Jeffrey!!!

It’s unfortunate that LR doesn’t (yet?) fully support geotagging, but I do have a suggestion for PC users (sorry Mac, although I’ve heard it works in Parallels). I use a program called Downloader Pro (from the makers of BreezeBrowser Pro) to copy my CF cards to my hard drive. If I have my GPS connected to the computer while I download, then DLPro will find the track logs and use the date/time to match photos to locations in the log, and write it into the EXIF. The new version released a few days ago will lookup the city/country names on and add it to the IPTC data as well. LR takes it from there.

In addition to geotagging, DLPro is also much much better at building directory structures and renaming files than LR’s weak import options for file naming.

Not affiliated with Breeze Systems, just a happy user.

FWIW, I now offer a plugin that does Geoencoding within Lightroom —Jeffrey

— comment by Mike Alexander on October 20th, 2008 at 10:08pm JST (15 years, 9 months ago) comment permalink

That was actually, what I was waiting for to appear in LR 2.0
Thank you so much for this addition!!!

BTW: I use Geosetter for geotagging my images (sync between GPS-File and Images but also manual mode possible). It is not as easy as Downloader Pro, but it is free , very comfortable and it is able to tag RAW-Files too.

— comment by Bauckmeier Konrad on October 21st, 2008 at 9:43pm JST (15 years, 9 months ago) comment permalink

As an avid user of a GPS and do geotag a considerable number of my images, I am always interested to read about any additional functionality that can be brought into play. Now then, please forgive this perhaps senile question but make allowances that is is coming from a senile person, or at least one getting on it years. I have read your post and the instructions etc etc but I am still confused as to what exactly this plug-in is supposed to achieve. For instance – the word proximity is used but proximity to what?

The proximity to the “search epicenter”, which you specify in the search-dialog that pops up when you invoke a search.

I tried this with a single image last night and the plug-in through up a response that I was something like 1km away from the target – but what was the target? I’m sorry to say that I’m at a complete loss as to best utilize this wonderful idea of yours and wonder if you’d care to explain it more in very simple terms. You might want to consider an email response.

At the moment I am drifting along with the idea, I think, that the user should first place a ‘pin’ in Google maps of a target location – say Rome city centre. Then using your plug-in all geotagged images will be indicated with a proximity to that target. Would this be correct?

Additionally, I may have happened upon a ‘bug’ in the plug-in. I have all my geotagged images contained within a Collection and, as is Lightrooms way, the first image in any folder is always highlighted so I then go to the menu and choose ‘Deselect All’. When I now click on the first image in the Collection and run the plug-in, in the ‘Images to Search’ box it indicates all the images in my Library. There is no way to choose (and have indicated) that single image if it happens to be the first one in the Collection. The way round it I have found is to ALT click on the second and then the first image which then indicates 2 images in the ‘Images to Search’ box.

Since it makes little sense to “search” a single image, the plugin searches all images when one or no images are selected. If you want to limit your search to all in the collection, select them first (Ctrl-A or Cmd-A while in the collection). It would be a good feature for the plugin to offer an “all images in the current collection” choice, but alas, the plugin infrastructure does not provide that information. —Jeffrey

Windows XP Pro SP3

Thanks for your time and efforts in providing this plug-in and your ‘services’ to us Lightroom users – very much appreciated.


— comment by ElliR on October 22nd, 2008 at 3:43pm JST (15 years, 9 months ago) comment permalink

Thanks for clearing that one up Jeffrey. I note that of this morning read on the Adobe LR Forum that 2.1 final release is going to be available later today. Will installing 2.1 recognise your plug-in as is or shall we have to wait for a plug-in update. I note from the plug-ins menu box that you intend updating prior to Nov 2.

The upgrade to 2.1 is seamless… plugins installed prior will be fine, so before/after makes no difference. —Jeffrey

— comment by ElliR on October 22nd, 2008 at 5:56pm JST (15 years, 9 months ago) comment permalink

Thanks once again for taking the time to reply – have a nice day – Elli

— comment by ElliR on October 22nd, 2008 at 6:33pm JST (15 years, 9 months ago) comment permalink

Help Jeffrey

Have just updated to the .5 version of the Proximimity Search plug-in and now things do not work as they should. If you are not able to advise on the problem below perhaps you could advise whether or not it is possible to get back to either the .1 or .2 versions as I had no trouble with those.

Following the selection of a number of geotagged images in LR, I then go to File > Plug-in Extras and select GPS Proximity search. This brings up a pop-up window titled ‘Info’ containing the text “+141.8 : At line 9075: Attempt to access property “data” that’s not declared in Info.lua”.

Any clues please? Thanks

This was a bug I introduced yesterday, sorry. .6 fixes it. —Jeffrey

— comment by ElliR on October 30th, 2008 at 10:07pm JST (15 years, 9 months ago) comment permalink

I found the idea of the plugin really great!.
how ever I am worried about one thing: Are the custom metadata written on the file or not? I am usually reluctant to write metadata to photo that are not really meaning full as they may interfere with other search in other software (for example here the bearing and direction might be mistaken with the bearing and direction of the image)
Anyway great job thank you for that
Best regards

No, nothing is written to the image file (or any image sidecar). It’s all kept in the Lighroom catalog. —Jeffrey

— comment by Eric on November 6th, 2008 at 9:28pm JST (15 years, 8 months ago) comment permalink

Hi Jeffrey,

Nice tool, indeed. I postet a entry on our (German) blog:

Keep me informed if you have new geotagging gadgets. Thanks!

— comment by seb on June 4th, 2009 at 1:41am JST (15 years, 1 month ago) comment permalink

Hi There

I am in the UK.

I love the way this plugin works, just need to know if I can speed up seeing the results.

Could you tell me if there is a way of speeding up the results of the search. It takes along time to write the data into the Metadata. One search took so long to write and create a collection I had to Crash out of LR (using LR5) Is there anyways the results can be shown in the grid without writing to the metadata, We can then create a quick collection with the results.

I understand writing data in the metadata takes time but when I have a search of 280,000 images and possibly several hundred results you can see it’s painfully slow to show the results.

Hope that makes sense.



Since Lr4, you can just use the Map module for most of what this plugin does, so I haven’t been concerned with its speed (since I didn’t think anyone used it anymore). But there’s not much I can do to speed up the underlying database queries Lightroom does… the plugin is at the mercy of a black box. It is, indeed, painfully slow. Can’t the Map module do what you need? —Jeffrey

— comment by Ian on June 15th, 2013 at 11:27pm JST (11 years, 1 month ago) comment permalink
Leave a comment...

All comments are invisible to others until Jeffrey approves them.

Please mention what part of the world you're writing from, if you don't mind. It's always interesting to see where people are visiting from.

IMPORTANT:I'm mostly retired, so I don't check comments often anymore, sorry.

You can use basic HTML; be sure to close tags properly.

Subscribe without commenting