Convert GeoJSON to FlatGeobuf Online — Free GIS Converter
Convert GeoJSON to FlatGeobuf (.fgb) for cloud-native GIS, fast web APIs, and HTTP range request streaming — free, browser-based, no install required.
Updated May 2026
GeoJSON is ideal for human-readable data exchange, but when you need blazing-fast reads, cloud-native streaming, or a binary format that HTTP servers can serve with range requests, FlatGeobuf is the modern alternative — convert your .geojson file to .fgb instantly with geodata.plus.
Why convert GeoJSON to FlatGeobuf?
FlatGeobuf is a relatively new binary vector format built on Flatbuffers serialization, designed from the ground up for cloud-native GIS workflows. Unlike GeoJSON, which must be fully downloaded and parsed before any features can be rendered, FlatGeobuf supports HTTP range requests — a web server can serve individual spatial tiles or bounding-box subsets of a FlatGeobuf file without the client downloading the entire dataset. This makes it ideal for large datasets hosted on object storage (S3, GCS, Azure Blob) that need to be streamed efficiently to web maps.
If you are building a Mapbox GL or OpenLayers application that needs to serve a large vector dataset from a static file host, converting your GeoJSON to FlatGeobuf can reduce initial load times by an order of magnitude. The format is also supported natively by GDAL, making it compatible with any GDAL-based desktop GIS tool.
Why use geodata.plus
- Free tier — convert up to 3 files per month at no cost, no credit card required
- Automatic CRS detection — reads the WGS 84 CRS from your GeoJSON and encodes the correct CRS header in the FlatGeobuf file
- Optional reprojection — reproject to any EPSG code before download if your target application requires a projected CRS
- Browser-based — no GDAL, QGIS, or Node.js tools needed; works on any modern browser
- Encrypted transfer — all uploads use TLS; files are stored temporarily in Cloudflare R2 and automatically deleted on schedule
- Auto-deleted output — output files are automatically deleted after 2 days (free tier) and 7 days (Pro); no manual cleanup needed
How it works
- Upload your GeoJSON file (
.geojsonor.json) using the widget above - geodata.plus detects the format and confirms the coordinate reference system (WGS 84 / EPSG:4326)
- Select FlatGeobuf as the output format; optionally choose a target EPSG code
- Download your
.fgbfile, ready for cloud hosting, GDAL pipelines, or web map integration
GeoJSON format
GeoJSON is a text-based, human-readable format that excels at simplicity and universal compatibility. It requires no library beyond a standard JSON parser, making it trivially consumable by any programming language. However, its text encoding and lack of spatial indexing make it inefficient for large datasets — reading a 50 MB GeoJSON file requires parsing every byte before a single feature is accessible.
| Property | Value |
|---|---|
| Extension | .geojson, .json |
| Type | Vector, single file |
| Coordinate system | Always WGS 84 (EPSG:4326) |
| Geometry types | Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon |
| Common software | Leaflet, Mapbox, OpenLayers, QGIS, ArcGIS, GitHub |
FlatGeobuf format
FlatGeobuf uses the Flatbuffers binary serialization library to store geographic features in a columnar, cache-friendly layout. A packed Hilbert R-tree spatial index is embedded in the file header, enabling fast spatial queries and HTTP range request support. The format is significantly smaller than equivalent GeoJSON (typically 3–5x compression without any external compression) and reads much faster because it avoids JSON parsing overhead. FlatGeobuf is an OGC Community Standard as of 2021.
| Property | Value |
|---|---|
| Extension | .fgb |
| Type | Vector, single file (binary) |
| Coordinate system | Any CRS |
| Geometry types | Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, GeometryCollection |
| Common software | GDAL/OGR, Mapbox, OpenLayers, QGIS, cloud-native GIS tools, web APIs |
Frequently asked questions
How much smaller will my FlatGeobuf file be compared to the source GeoJSON?
Typical GeoJSON to FlatGeobuf conversions produce a file 3 to 6 times smaller, depending on geometry complexity and attribute density. Geometry coordinates benefit the most from binary encoding. Datasets with many long string attributes see less compression because strings are stored verbatim. For very large datasets, applying gzip or Brotli compression on top of FlatGeobuf (which static file hosts often do automatically) can reduce the size further.
Can I serve a FlatGeobuf file directly from Amazon S3 or Cloudflare R2 and stream features to a web map?
Yes, this is one of the primary design goals of FlatGeobuf. Because the spatial index lives in the file header and features are laid out in Hilbert curve order, a web client can issue a single HTTP range request for the index, determine which byte ranges contain features in a given bounding box, and then fetch only those ranges. The flatgeobuf JavaScript library handles this automatically, and it integrates with both Mapbox GL JS and OpenLayers.
Does FlatGeobuf preserve all GeoJSON properties, including nested objects?
FlatGeobuf stores properties in a typed column schema defined in the file header. Simple types — strings, integers, floats, booleans — are preserved exactly. Nested JSON objects or arrays within GeoJSON properties are not natively supported by FlatGeobuf's column schema; geodata.plus serializes them as JSON strings in a text column so the data is not lost, but they will appear as string values rather than structured objects in the output.