Skip to content

Tools · Geo

Find your photos by where they were taken.

Choose a folder of photos. Geo reads the GPS position your phone or camera recorded in each one via the EXIF data, then finds the photos taken near a point, inside an area or between two dates. Ordinary code does the work. It never guesses where a photo was taken, and it never changes your files.

Why this exists

A phone records where each photo was taken, and that position stays inside the file. Photo apps and photo services use it to show a map, usually for one library, and often after the photos have been uploaded. Geo does it for any folder on my own computer. The photos and the places they record stay there.

What goes in and what comes out

Goes in
A folder of photos: JPEG, PNG, TIFF, WebP, iPhone HEIC files and raw files from common cameras.
First
Geo makes an index. It reads the recorded position and the date taken from each photo, and keeps them in a hidden folder inside your folder. Your photos are not changed. When photos are added or changed, you update the index, and only those are read again.
You search
Within a distance of a point, inside a box you give by its four edges, or every photo with a position. Each can be narrowed to a range of dates.
Comes out
A list of the photos found, each with its file, its recorded position, when it was taken and how far it is from your point. You can preview a photo, show it in Finder and see the results on a map.
You can save
The results as a GeoJSON file, which mapping software can open.
It also shows
How many photos have no recorded position, and how many could not be read, with the reason for each.

The map contacts no map service. On its own it shows the positions on a plain background. To see streets and places behind them, you choose a map pack, which is one file of map pictures kept on your computer. I have made one of London from Ordnance Survey open data, about 22 MB.

Nothing is kept except the index. The folders you choose, your searches and the results are not saved or logged.

When photos move between folders, Geo’s index of them is out of date until I update it. Moving a pile of photos into my folders is the playbook A pile of photos.

Models used

None. Geo is ordinary code. Every position and date it shows was recorded in the photo by the device that took it. ExifTool reads them from each file, and the distances are plain arithmetic. The map is drawn by Leaflet 1.9.4, kept inside the tool.

When it uses the network

Normal use downloads nothing and sends nothing. There is one exception, and you choose it. “Use my current location” asks your browser where you are, and your browser or computer may contact a location service to work that out. Typing the position yourself avoids that.

What has been checked

Automated tests run on invented photo details and invented map packs. A separate check ran the real ExifTool over four tiny invented files: two with a position, one without and one damaged. Each was reported correctly, and the files were byte for byte the same afterwards.

No real collection of photos had been through it when those checks were written. How well it serves a real search has not been counted.

Known limits

Availability

Not available to download yet. Geo runs in the development Kettle app on my Mac, as its own page and from the command line. There is no public installer or source download at present.