Geobuf is a compact binary packing of GeoJSON on Protocol Buffers, created at Mapbox (Vladimir Agafonkin, 2015). It encodes the same objects as GeoJSON but typically 6–8x smaller thanks to varint, coordinate delta encoding, and a key dictionary; decoding returns an equivalent GeoJSON losslessly. It is a transport layer for mobile maps, edge CDN caches, and IndexedDB storage, not an analytical format. Our exporter builds a FeatureCollection from the OSM layers and encodes it into real protobuf .pbf with 6-digit precision (~0.1 m). Important: the format is honest — if encoding fails the export errors out, we do NOT substitute gzipped GeoJSON under a .pbf name.
Key Features
About Geobuf Format
Geobuf solves one problem: the same GeoJSON, but many times smaller. Instead of text — Protocol Buffers; instead of repeating property names — a dictionary of keys; instead of full coordinates — the differences between neighboring points, written as variable-length numbers. The meaning of the data does not change, only the packing does.
This is a transport format. It is taken when data has to be delivered: into a mobile app over a weak network, onto a CDN node, into a browser's offline storage. Computing statistics or editing features in it is awkward — for that it is first decoded back into GeoJSON.
The file contains a single FeatureCollection with all the selected layers, encoded as genuine protobuf. Coordinates are rounded to six decimal places, which is about ten centimeters on the ground — more than enough for city-level detail. OpenStreetMap attributes are preserved.
There is no substitution: if the encoding fails, the export ends with an error. Handing you a gzipped GeoJSON under a .pbf extension would be easier, but such a file would not decode with the geobuf library — and so would be useless.
What Program Opens Geobuf Files
The following programs and applications can open, edit, and work with Geobuf (Protobuf-encoded GeoJSON) (.pbf) files exported from OSM2CDR:
Format specifications
- Open standard
- 2D only
- Lossless (no quality loss)
- Stores feature attributes
- Output: 1 file
- Real protobuf .pbf encoding a GeoJSON FeatureCollection at 6-digit precision (~0.1 m); honest guarantee — real Geobuf or an error, never a gzipped-GeoJSON substitution.
Who Uses Geobuf Maps
How to Export Geobuf
How to Open After Export
- JavaScript — npm install geobuf pbf, then geobuf.decode(new Pbf(buffer)) returns ready GeoJSON that you can hand straight to Leaflet or Mapbox GL.
- Python — pip install geobuf, then geobuf.decode(open("map.pbf", "rb").read()); after that it is ordinary GeoJSON work or loading into GeoPandas.
- A mobile app — the file goes into the resources or is pulled from the server: decoding takes a fraction of a second, and the traffic is several times smaller.
- Offline in the browser — the decoded result is convenient to keep in IndexedDB and redraw the map with no network.
- Just to take a look — decode it into GeoJSON and drag it onto geojson.io: no viewer will show the .pbf itself.
Popular maps in Geobuf
Get Geobuf (Protobuf-encoded GeoJSON) map exports
Download professional Geobuf maps from OpenStreetMap. Instant generation, any area.