Shapefile to FlatGeobuf Converter
The modern replacement migration: keep the binary efficiency of Shapefile, drop the multi-file bundle, the 10-character DBF cap, and the 2-GB ceiling.
Convert Shapefile to FlatGeobuf now
Common issues converting Shapefile to FlatGeobuf
- Upload the zipped bundle. .shp/.dbf/.shx/.prj inside; .cpg if your DBF uses a non-default encoding (UTF-8 or Latin-1 are common).
- Shapefile DBF column names are uppercased and 10-char-capped. FlatGeobuf doesn't have that limit, but the converter preserves whatever's in the source — rename via your dataframe library if you want long descriptive names.
- The .prj is honoured; FlatGeobuf carries the resulting CRS in its header. Missing .prj falls back to WGS 84 and emits a warning.
- Multi-geometry shapefiles (e.g., a ZIP that bundles point + line + polygon .shp files) need to be split — one geometry type per FlatGeobuf file.
Frequently asked questions
Does the converter preserve the spatial index?
It builds a fresh packed R-tree on output, regardless of whether the source shapefile shipped with .qix or .sbn sidecars. The new index is compatible with all FlatGeobuf readers.
How does field-type fidelity compare?
Better than Shapefile-roundtrip. FlatGeobuf carries int / long / float / double / string / bool / datetime cleanly. DBF's awkward N/F/D/L typing maps to the closest FlatGeobuf primitive.
Is FlatGeobuf compatible with PostGIS?
Not directly — PostGIS imports via ogr2ogr or GDAL's `ogr_fdw` extension, both of which read FlatGeobuf natively.
Can I serve the .fgb directly from S3 or a CDN?
Yes — that's one of FlatGeobuf's design goals. Clients can issue HTTP range requests to read just the spatial index + the features matching a bbox, without downloading the whole file.