A GeoPackage (.gpkg) is an open, standards-based file format for geospatial data built on top of SQLite. A single .gpkg file can hold vector features, raster coverages, tiled imagery, attribute tables, and metadata together — all in one self-contained database. It is defined by an Open Geospatial Consortium (OGC) standard.

What it is and why it matters

GeoPackage was designed as a modern replacement for the aging Shapefile format. Because it is a single SQLite file, it sidesteps Shapefile's well-known limitations: the multi-file sidecar mess (.shp/.shx/.dbf/.prj), the 2 GB size cap, the 10-character field-name limit, and shaky non-ASCII attribute handling.

For GIS and geology teams it matters because one file can carry an entire layered dataset — geological units, faults, sample points, and a DEM tile pyramid — with full UTF-8 attributes and a defined CRS. It is cross-platform, requires no server, and is read/written natively by QGIS, GDAL/OGR, ArcGIS, and most modern tooling.

Concrete example

Convert a Shapefile to GeoPackage with GDAL's ogr2ogr:

ogr2ogr -f GPKG units.gpkg units.shp -nln geological_units

The resulting units.gpkg is a queryable SQLite database. You can add more layers into the same file and even open it with standard SQLite tools to run SQL against the gpkg_contents table that catalogues every layer.

Common pitfall

GeoPackage is excellent for storage and exchange, but it is not a concurrent multi-user database — SQLite locks the whole file on write. For multiple editors hitting the same data simultaneously, use PostGIS instead. GeoPackage shines for single-user editing, delivery, and offline use.

Related reading