Live Online ConverterChannel: shapefilegeopackage

Shapefile to GeoPackage Converter

Convert a zipped ESRI Shapefile into a GeoPackage file.

Use this tool to convert an ESRI Shapefile ZIP archive into a GeoPackage (GPKG) database. Your ZIP should contain at least .shp, .shx, and .dbf files. A .prj file is recommended if your data has coordinate reference system information. The backend processes the files inside automated sandbox memory limits.

Drag file here to convert, or select file

Supported file extension: .zip • Max 50MB

Includes: .shp, .shx, .dbf
Channel: Direct Stream ModeGDAL Driver Operational

Specification Rules

  • Open old Shapefile data in modern desktop GIS environments
  • Consolidate multiple loose shape components into an SQLite database container
  • Optimize local geospatial lookup operations with standard index files
  • The upload must be a valid, uncorrupted ZIP archive
  • The ZIP must contain the minimum components directly in the archive root
  • Total uncompressed ZIP size is subject to current worker memory limits

GDAL Direct Equivalent Terminal Command

sh — gdalready
$ogr2ogr -f GPKG output.gpkg input.shp

When to use this conversion

Convert when you want to retire a legacy Shapefile bundle and switch to a modern, single-file format that supports unlimited attribute names, multiple layers per file, and a built-in spatial index. This is the canonical migration path for modernising a desktop GIS project.

Technical Details

GDAL reads the .shp geometry, .dbf attribute table, .shx index, and (if present) .prj CRS, then writes a SQLite database with the OGC GeoPackage metadata tables (gpkg_contents, gpkg_geometry_columns, gpkg_spatial_ref_sys). Geometries are stored as WKB blobs with a GeoPackage header; an R*Tree spatial index is created via triggers. The CRS from the .prj is preserved exactly; if no .prj is present the layer is written with an undefined SRS (srs_id = 0).
Output file size

GeoPackage is typically 60–80% the size of the unzipped Shapefile bundle (binary geometry plus SQLite overhead vs binary .shp plus .dbf). For very small layers, the SQLite metadata overhead can make the .gpkg slightly larger than the .shp alone.

Common Errors & Fixes

  • ZIP archive contains a sub-folder: GeoPackage build fails because .shp is not at the root. Fix: re-zip so the .shp/.shx/.dbf sit directly in the archive root.
  • Missing .prj: the output GeoPackage has srs_id 0 and cannot be reprojected. Fix: ask the supplier for the .prj or assign one with ogr2ogr -a_srs EPSG:<code>.
  • Encoding garbled: accented characters become "?" because the .dbf has no .cpg sidecar. Fix: add a .cpg file containing "UTF-8" (or the correct codepage) before converting.
  • Field names truncated in the source: the .dbf had 10-character names already, and going to GeoPackage cannot recover the original long names. Fix: contact the data producer for an export with full names.

Alternative Tools

  • QGIS: drag the Shapefile in, right-click → Export → Save Features As → GeoPackage
  • ogr2ogr CLI: ogr2ogr -f GPKG output.gpkg input.shp
  • Python: geopandas.read_file("input.shp").to_file("output.gpkg", driver="GPKG")
  • FME or Global Mapper for batch conversions with field renaming and CRS reprojection

Frequently Asked Questions

Why do I need to upload a ZIP file?

An ESRI Shapefile is a multi-file vector format consisting of at least three core files (.shp, .shx, and .dbf). To process them together online, they must be uploaded together inside a single compressed ZIP archive.

Does this tool preserve projection and coordinate system details?

Yes. If your uploaded ZIP archive contains a valid coordinate reference system definition file (.prj), the GDAL database engine will automatically read and map the projection standards precisely into the resulting GeoPackage.

How secure is my geospatial vector data?

All translations operate transiently. Uploaded archives are processed in a per-request temporary directory on our isolated GDAL worker (Fly.io, Frankfurt/EU) and deleted in full immediately after the conversion finishes — even on error. No database records are persisted.

Related Transformations Map