GeoPackage to GeoJSON Converter
Converts every layer of a GeoPackage to GeoJSON with GDAL's ogr2ogr.
Upload a .gpkg file. Every layer is converted; one layer gives one .geojson file, several layers give a ZIP with one .geojson per layer. The QGIS style table layer_styles is skipped because it holds no geodata.
Drag a file here to convert, or select file
Accepted: .gpkg · max. 50 MB
What the converter does
- Every layer of the GeoPackage is converted. One layer gives one .geojson; several give a ZIP with one .geojson per layer.
- The QGIS style table layer_styles is skipped (no geodata) and listed in the report.
- Layers with mixed geometries are written as they are; GeoJSON allows mixed geometries.
- Nothing is reprojected: the coordinates stay in the coordinate system of the source. A layer in EPSG:25832 stays in metres and gets the crs member urn:ogc:def:crs:EPSG::25832.
- The report below the upload shows layers and features read and written, skipped layers with the reason, GDAL's warnings and the exact commands.
GDAL command the worker runs
parcels stands for the only layer of the GeoPackage. With several layers the worker runs one command per layer, e.g. ogr2ogr -f GeoJSON layers/roads.geojson input.gpkg roads.
Tested with
| Test file | Result |
|---|---|
| GeoPackage with 2 layers (4 points; 4 mixed geometries) and a QGIS layer_styles table | ZIP with punkte.geojson (4) and gemischt.geojson (4); 8 of 8 features; layer_styles skipped and listed |
| GeoPackage with 1 polygon layer in EPSG:25832 | 1 GeoJSON, 1 of 1 feature, metre coordinates, crs EPSG::25832 |
Tested on 24 Sep 2026 with the worker code of this site and GDAL 3.10.3 (conda-forge build on Windows). The worker image runs the Debian build of the same GDAL version; the live worker was not part of these tests.
Limits
- Upload limit: 50 MB per file.
- No reprojection; for RFC 7946 GeoJSON (WGS84) run ogr2ogr locally with -t_srs EPSG:4326.
- Each GDAL step may run for up to 240 seconds; a longer run is stopped with an error message.
Frequently Asked Questions
Is every layer converted?
Yes. In the test both layers of a two-layer GeoPackage arrived, each as its own GeoJSON. Only the QGIS style table layer_styles is skipped, and the report says so.
Why is my GeoJSON in metres?
The worker keeps the layer's coordinate system. For longitude/latitude run ogr2ogr -f GeoJSON out.geojson in.gpkg -t_srs EPSG:4326 locally.
What happens to my file?
Your browser uploads it directly to the GDAL worker on Fly.io (region Frankfurt). The worker converts it in a temporary folder and deletes the folder after sending the result, or immediately if the conversion fails. Files are not stored permanently.