Image EXIF map
Extract GPS locations from EXIF data, plot them on a map, and export to CSV, GeoJSON, or KML.
Upload JPEG photos to extract GPS coordinates from their EXIF metadata.
Smartphones and GPS-enabled cameras typically include location data.
If location was switched on, every photo carries the coordinates of where the shutter fired, and a folder of photos is therefore a map of a trip nobody ever drew. This page reads the GPS block straight out of each JPEG with a small purpose-written parser — it walks the APP1 segment and the TIFF directories itself rather than loading a metadata library — pulls latitude, longitude, altitude, capture date, camera make and model, and plots everything on a MapLibre map. There is also a sortable table and a thumbnail grid for the same data, a date range and total trip distance, and export to CSV, GeoJSON or KML.
Key facts about Photo GPS map
| Parser | A hand-written JPEG EXIF reader: it finds the 0xFFE1 APP1 marker, checks the Exif header, reads the TIFF byte order and walks IFD0, the EXIF sub-IFD and the GPS IFD |
|---|---|
| Tags read | GPS latitude and its N/S reference, longitude and its E/W reference, altitude, DateTimeOriginal with DateTimeDigitized and DateTime as fallbacks, camera make and camera model |
| Coordinate conversion | Degrees, minutes and seconds rationals become signed decimal degrees, and are also displayed in DMS with a hemisphere letter |
| Formats | JPEG. The file picker also offers TIFF, but the parser requires the JPEG start-of-image marker, so a TIFF returns no location |
| Three views | Map with markers and popups, a sortable table, and a thumbnail grid — the same photos, three ways of reading them |
| Sorting and filtering | Sort by file name, capture date or latitude, ascending or descending, with a text filter across the list |
| Trip distance | The sum of great-circle distances between consecutive located photos in list order, using the haversine formula on a 6,371 km earth radius |
| Summary | Photos loaded, how many have GPS, how many do not, the capture date range and the list of distinct camera models |
| Map engine | MapLibre GL JS, loaded on demand, with OpenStreetMap raster tiles |
| Outbound links | Each photo links to its position in Google Maps, OpenStreetMap or Apple Maps, selectable |
| Exports | CSV (filename, latitude, longitude, date, camera, altitude), GeoJSON points, or KML placemarks — always only the photos that have coordinates |
What happens to your file
Your photos are read locally and parsed in this tab; no image is uploaded, and the CSV, GeoJSON and KML exports are generated in page memory and saved by your browser. The map view is the exception worth stating plainly: its background tiles come from tile.openstreetmap.org, so that tile server sees your IP address and which map squares are being displayed, which implies roughly where your photos were taken. The photos and their exact coordinates are never sent in those requests. Use the table or grid view, which need no tiles, if you would rather not reveal even the area.
About this tool
- 1
Select or drop your photos
Add a whole folder of JPEGs at once. Each is parsed immediately and sorted into the located and not-located groups.
- 2
Read the summary
How many photos have GPS, how many do not, the range of capture dates and which camera models appear. The photos with no GPS are listed too, so nothing silently disappears.
- 3
Switch to the view that answers your question
Map for where, table for exact coordinates and dates, grid when you need to recognise the photo by its thumbnail.
- 4
Sort and filter
Sort by name, date or latitude, and filter by text. Sorting by date before reading the trip distance makes that number mean something.
- 5
Open a location elsewhere
Pick your preferred map provider and follow the link on any photo to see the spot in Google Maps, OpenStreetMap or Apple Maps.
- 6
Export the positions
CSV for a spreadsheet, GeoJSON for a mapping tool, KML for Google Earth. Only located photos are exported.
| Accepted types | image/jpeg primarily; the picker also lists TIFF, which the parser cannot read |
|---|---|
| Photos at once | No fixed cap; all are held in memory with object-URL thumbnails |
| Coordinate output | Decimal degrees and degrees-minutes-seconds, plus altitude in metres where present |
| Distance model | Haversine great-circle, straight lines between consecutive photos — not a road or trail distance |
| Date handling | EXIF dates use colons in the date part; they are normalised to a readable form for display and export |
| Exports | CSV, GeoJSON, KML |
| Map requirement | WebGL for the map view; the table and grid views work without it |
| Network | Only for basemap tiles in map view |
| Cost / account | Free, unlimited photos, no signup |
- Sort by date before reading the trip distance: the figure is the sum of straight-line hops between consecutive photos in the current list order, so an unsorted list gives a meaningless number.
- Photos with no GPS are usually screenshots, images received through a messaging app, or shots taken with location services switched off for the camera.
- The distance is great-circle, not driven — it is a lower bound on how far you actually travelled.
- Altitude comes from the same GPS fix as the position and is noticeably less accurate than the horizontal coordinates.
- Use the table view on a slow connection: it needs no map tiles at all and shows the same coordinates.
- Export GeoJSON and open it in the GeoJSON viewer on this site when you want to restyle or combine the points with other data.
- If every photo lands in the wrong country, check the hemisphere references — a west longitude written without its W reference plots in the eastern hemisphere.
- EXIF GPS extraction from JPEG
- Map, table and grid views
- Decimal and DMS coordinates
- Capture date, camera make and model
- Date range and distinct camera list
- Total trip distance
- Google, OpenStreetMap and Apple Maps links
- CSV, GeoJSON and KML export
- Mapping a holiday or a hike from the photos you already took.
- Working out where an old photo was taken when you no longer remember.
- Checking which photos in a folder still carry location before you publish them.
- Building a GeoJSON or KML of site visits from field photographs.
- Documenting an inspection or a survey with positions taken straight from the images.
- Sorting a mixed folder into located and unlocated photos before archiving.
Related tools
View allPart of File viewers that open the file in your browser
Works well with this5
More file viewers10
More in Photography3
Updated