๐บ Places
LibrePhotos can display your photos on an interactive map based on their GPS coordinates. This page explains how geolocation works and how to get the most out of the Places feature.
How It Worksโ
1. GPS Coordinates from Photosโ
When you take a photo with a GPS-enabled device (smartphone, camera with GPS, etc.), the location is stored in the photo's EXIF metadata as latitude and longitude coordinates. LibrePhotos reads these coordinates during the scan process:
Composite:GPSLatitude- The latitude coordinateComposite:GPSLongitude- The longitude coordinate
2. Reverse Geocodingโ
GPS coordinates alone are just numbers. To show meaningful place names (like "Paris, France" or "Central Park, New York"), LibrePhotos uses reverse geocoding - a process that converts coordinates into human-readable addresses.
You can configure your preferred geocoding provider in Admin Area โ Site Settings:
| Provider | API Key Required | Notes |
|---|---|---|
| Nominatim (OpenStreetMap) | No | Free and open source, default option |
| Mapbox | Yes | Commercial service with free tier |
| MapTiler | Yes | Commercial service with free tier |
| OpenCage | Yes | Commercial service with free tier |
| TomTom | Yes | Commercial service with free tier |
Nominatim is the recommended option as it's completely free and doesn't require an API key. It uses OpenStreetMap data and works well for most use cases.
To respect Nominatim's public terms of use, LibrePhotos limits itself to about one lookup per second for this provider, and that limit is shared across all background workers โ adding more workers won't speed it up. The first scan of a large geotagged library will therefore take a while, and places keep filling in after the scan reports done. If you have tens of thousands of geotagged photos, a commercial provider with an API key geocodes far faster.
3. Map Displayโ
LibrePhotos renders maps with MapLibre GL. By default the map background (the "tiles") comes from PhotoPrism's free tile server, which provides:
- Smooth, high-quality vector maps
- Fast rendering and zooming
- No API key required for map display
- Works offline once tiles are cached
Admins can change where tiles come from under Admin Area โ Site Settings โ Map Tiles, which sits directly below the Map Provider select. Three options are available:
- PhotoPrism (default): MapLibre vector tiles from
cdn.photoprism.appandmaps.photoprism.app. - OpenStreetMap: raster tiles from
tile.openstreetmap.org(label glyphs fromfonts.openmaptiles.org). - None (hide map): no map is rendered anywhere; a placeholder is shown instead.
This setting is global. Choosing None hides the map in every map view, including the Places page, album location maps, the photo-info mini-map, and the location picker. The initial value comes from the MAP_TILE_PROVIDER environment variable (default photoprism), but it is an admin-editable site setting thereafter, so you don't need to restart to change it.
The Places Pageโ
The Places page (/album/places) shows the places in your library on an interactive map. The map plots one marker per detected place name, not one per photo โ reverse geocoding records several levels for each photo (country, region, city, point of interest), so a single photo can contribute several markers, and each distinct place name appears only once.
- Clustered markers: When zoomed out, nearby places are grouped into clusters; the number shown on a cluster is how many distinct places it contains, not how many photos
- Click to zoom: Click on a cluster to zoom in and see individual locations
- Filtered albums: As you pan and zoom the map, the album grid below updates to show places visible in the current view
- Navigation controls: Use the +/- buttons or scroll to zoom, drag to pan
Setting Up Placesโ
Step 1: Configure Map Providers (Optional)โ
- Go to Admin Area โ Site Settings
- Select your preferred Map Provider โ this is the geocoding service used to turn coordinates into place names
- If using a commercial provider, enter your key in the API key for Map Provider field
- Optionally, choose the Map Tiles source directly below (PhotoPrism, OpenStreetMap, or None) โ this controls the map background rather than geocoding
- Save the settings
Step 2: Scan Your Photosโ
- Click your avatar (top right) and choose Library
- In the Scan Library card, click Scan to pick up newly added photos. If your photos are already indexed, open the dropdown next to the button and choose Rescan instead โ a plain scan skips files that haven't changed
- The scan extracts GPS coordinates and performs reverse geocoding
See Library Management for the full list of Library page actions.
Step 3: View Your Placesโ
Navigate to Albums โ Places to see your photos on the map.
Features Enabled by Geolocationโ
Once your photos have location data:
- Search by location: Search for photos by place name (e.g., "Paris", "beach")
- Auto-albums with places: Automatically created albums include location in their titles
- Location timeline: See where you've been over time
- Place tree: Hierarchical view of all your locations
- Photo info: Individual photos show their location on a mini-map (when map display is enabled), and you can set or correct a photo's location from there
Setting a Location Manuallyโ
If a photo has no GPS data, or has the wrong location, you can set it by hand:
- Open the photo and find the location line in the info sidebar.
- Click the pencil (Update location) next to it to open the Pick location dialog.
- Set the position by searching for a place name, clicking or dragging the marker on the map, or clicking the crosshair button to use your browser's current location.
- Click Save.
The photo is reverse-geocoded immediately and added to the matching place albums โ no rescan required. The pencil is not shown on publicly shared photos. If maps are turned off in Site Settings, the map pane is hidden but place-name search and "use my current location" still work.
Troubleshootingโ
Places tab is emptyโ
- Check if photos have GPS data: Open a photo's info panel and look for GPS coordinates
- Scan for new photos: If you recently added photos, run a Scan from the Library page
- Check geocoding provider: Ensure your geocoding provider is configured correctly in Admin Area โ Site Settings. A commercial provider with a missing or invalid API key fails silently โ the scan reports success but no place names are stored
- Run a full Rescan after fixing the provider: Go to Library โ Scan Library, open the dropdown next to the Scan button, and choose Rescan. The plain Scan button only geolocates photos added since the previous geolocation run, so it will not re-geocode your existing library
- Give geocoding time to finish: Geocoding runs as a background job after the scan. With Nominatim on a large library this can take a while, and places keep filling in after the scan reports done โ wait before re-scanning
Some photos don't show locationsโ
- Not all devices embed GPS data in photos
- Indoor photos may not have accurate GPS
- Some cameras require GPS to be explicitly enabled
- Check if location services were enabled when the photo was taken
A rescan cannot add coordinates that were never in the file. To place such a photo yourself, see Setting a Location Manually.
Map tiles not loadingโ
- Check your internet connection
- Check Admin Area โ Site Settings โ Map Tiles. If it is set to None, maps are disabled on purpose
- With PhotoPrism (default), the tiles come from
cdn.photoprism.appandmaps.photoprism.app - With OpenStreetMap, they come from
tile.openstreetmap.organdfonts.openmaptiles.orginstead - Ensure the relevant domains aren't blocked by your firewall or ad blocker. If the PhotoPrism domains are unreachable, switching Map Tiles to OpenStreetMap (or None to hide the map) is an alternative
Privacy Considerationsโ
- GPS coordinates in photos can reveal sensitive location information
- When sharing photos, consider stripping EXIF data if privacy is a concern
- LibrePhotos keeps your location data private within your instance
- Opening a map fetches tiles for the area around your photos, which reveals their approximate location to the selected tile provider. The photo-info mini-map zooms in tightly, so the tiles it requests pinpoint that photo's location fairly precisely
- You control this with Map Tiles in Admin Area โ Site Settings: PhotoPrism (default, tiles from
cdn.photoprism.app/maps.photoprism.app), OpenStreetMap (tiles fromtile.openstreetmap.org, which shifts the exposure to a different provider rather than removing it), or None to disable map display entirely so no third-party tile requests are made