Advanced Photo Importer
A powerful QGIS plugin for importing, managing, and visualizing geotagged photos with EXIF data.
Overview
Advanced Photo Importer simplifies the integration of geotagged photos into your QGIS projects. It automatically extracts GPS coordinates, direction, and timestamp from EXIF metadata, creates point layers, and provides intuitive tools for managing, filtering, labeling, and visualizing field photos directly on the map.
Features
- Import photos from a single file or an entire folder (with optional recursive subfolder search)
- Automatic EXIF extraction — GPS latitude/longitude, bearing/direction, and capture timestamp
- Point layer creation — in-memory or saved as GPKG or Shapefile
- Customizable SVG camera markers with automatic rotation based on photo direction
- Marker size control — scale from 10% to 500%
- Date/time range filtering — independent of manual visibility control
- Per-photo visibility toggle — show or hide individual photos
- Label styling — font, size, bold, color, buffer/outline and offset controls
- Click-on-map tool — click a point on the canvas to open the corresponding photo
- Photo Edit Dialog — edit coordinates, direction, and label for any photo
- Excel export/import — save and reload all photo metadata via
.xlsx files
- Group management — organize photos into named groups
Installation
From QGIS Plugin Repository (Recommended)
- Open QGIS
- Go to Plugins → Manage and Install Plugins...
- Search for Advanced Photo Importer
- Click Install Plugin
Manual Installation
- Download the latest release
.zip from the GitHub Releases page
- In QGIS, go to Plugins → Manage and Install Plugins → Install from ZIP
- Select the downloaded
.zip file and click Install Plugin
Note: If you downloaded the zip directly from GitHub, the extracted folder may be named advanced-photo-importer-main. QGIS requires the plugin folder to be named exactly advanced_photo_importer. Rename it before placing it in your QGIS plugins directory.
Dependencies
📦 No External Installation Required
This plugin ships with all necessary Python libraries bundled inside:
| Library | Purpose |
exifread | Read EXIF metadata from JPEG photos |
openpyxl | Excel import/export functionality |
Everything works out of the box — no need to open a terminal, OSGeo4W Shell, or run pip install.
Note: If a system-installed version of a library is already available,
the plugin will prefer it automatically. The bundled copy is only used as a fallback.
Usage
Basic Workflow
- Open the plugin via the toolbar button or Plugins → Advanced Photo Importer
- Upload tab — choose a save location for the layer, then browse to a photo file or folder
- Click Upload Photos — the plugin extracts EXIF data and creates point markers on the map
- Imported Photos tab — view the list, toggle visibility, preview photos
- Filter tab — set a date/time range to show only photos within that period
- Settings tab — adjust marker size, icon style, direction display, and label appearance
- Use the See Photo toolbar button to click directly on map points to open photos
Excel Workflow
- Click Export Package in the Upload tab to save all photo metadata to an Excel file
- Edit the Excel file externally, then re-import using Import from Excel
Supported Formats
- Photo input: JPEG/JPG (must contain GPS EXIF data)
- Layer output: GeoPackage (
.gpkg), Shapefile (.shp), or in-memory layer
- Export/Import: Excel (
.xlsx)
Known Limitations
- Only JPEG photos with embedded GPS EXIF data are supported
- Large batches of photos are processed on the main thread — for very large datasets (1000+) performance may vary
openpyxl is required for Excel export/import features
License
This plugin is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.
See the LICENSE file for the full license text.
Contact & Support
📜 Credits / Icons
Full details regarding third-party assets and icon attributions can be found in the CREDITS.md file.