Geobuf 📦

Geobuf (Protobuf-encoded GeoJSON)

Open Beta
.pbf · application/x-protobuf

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.

立即导出 Geobuf ✨ Open Beta — 免费无限制

主要特点

Binary packing of GeoJSON on Protocol Buffers, typically 6–8x smaller
Lossless: decoding returns an equivalent GeoJSON
Default coordinate precision of 6 digits (~0.1 m)
geobuf decoders for JavaScript and Python (Leaflet, Mapbox GL, D3)
Honest guarantee: real protobuf or an error, never a substitution

关于 Geobuf 格式

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.

打开 Geobuf 文件的程序

以下程序可以打开、编辑和处理从 OSM2CDR 导出的 Geobuf (Protobuf-encoded GeoJSON)(.pbf)文件:

💻geobuf (npm) 💻python-geobuf 💻Node.js 💻Mapbox GL JS 💻Leaflet

格式规格

谁在使用 Geobuf 地图

🏗
Delivering vector data to a mobile app over a slow network
A compact parcel instead of a heavy GeoJSON — the difference is especially noticeable on mobile internet.
💻
Caching OSM selections on an edge CDN at a smaller size
Fewer bytes on every request to the cache: cheaper traffic and a faster response.
📊
Storing offline data in browser IndexedDB in compact form
The data sits packed in the browser's memory and is unpacked as needed.
🎨
Backing up GeoJSON snapshots 6–8x smaller without data loss
The same set of features in a file many times smaller, and decoding returns the original GeoJSON without any loss.

如何导出 Geobuf

1
选择区域
在 osm2cdr 的交互式地图上绘制矩形或多边形
2
选择 Geobuf
从 127 种可用导出格式中选择 Geobuf (Protobuf-encoded GeoJSON)
3
导出
点击导出,不到一分钟即可收到您的 .pbf 文件
4
下载
下载完成的 Geobuf 文件并在 geobuf (npm) 中打开

导出后如何打开

Geobuf 格式的热门地图

Free

导出 Geobuf (Protobuf-encoded GeoJSON) 地图

从 OpenStreetMap 下载专业的 Geobuf 地图。即时生成,任意区域。

免费 / 导出
立即导出 Geobuf →

常见问题

Does Geobuf replace GeoJSON?
How do I open a Geobuf .pbf file?
Do you substitute gzipped GeoJSON for Geobuf?
What is the coordinate precision?
Can this .pbf be confused with Mapbox vector tiles?
How much smaller does the file get?

相关格式

经常一起导出

Related Articles