FlatGeobuf
2026年10月19日 09:10
GISBox是一站式三维 GIS 数据编辑、转换、发布平台,支持 OSGB/GEOTIFF/RVT 等多种 GIS 格式编辑,转换为 3DTiles/Terrain 等并发布。
简介
FlatGeobuf是一种基于Google FlatBuffers技术的高性能开源地理数据二进制编码GIS格式,专为大规模静态矢量地理要素的存储、流式传输和高效读取设计,支持包含SQL-MM Part 3定义的圆形插值在内的完整简单要素集合,兼容点、线、面等各类几何类型与对应的属性信息。它通过内置可选的Packed Hilbert R-Tree空间索引,无需加载完整文件就能实现毫秒级的空间范围过滤查询,读写速度相比传统Shapefile快2-3倍,比GeoJSON快数倍,文件体积也能减少30%-60%,同时支持流式读写和随机访问,提供了JavaScript、C++、Rust、Go等多语言实现,目前已被GDAL、QGIS、GeoServer、PostGIS等主流GIS工具原生支持,广泛应用于Web地图百万级要素高效可视化、大规模地理数据集分发、云环境下的空间数据按需加载等场景,是替代传统文本类地理数据格式的高性能方案。

文件结构
FlatGeobuf的文件结构由4个核心部分组成,各部分分工明确,共同支撑起高性能的地理数据读写能力:
- Magic Bytes(魔数字段):位于文件最开头,是固定的8字节文件标识符(0x6667620366676201),用于快速校验文件格式合法性,让GIS工具能第一时间识别这是标准的FlatGeobuf文件。
- Header(头部元数据区):可变长度的FlatBuffer结构,存储数据集核心元信息,包括要素总数量、空间参考系(CRS)、全局几何类型、所有属性列的字段定义等,程序无需读取完整文件就能提前掌握数据概况,优化后续内存分配策略。
- Index(空间索引区):可选的Packed Hilbert R-Tree结构,每个索引节点记录对应要素的边界框坐标和在数据区的字节偏移量,支持通过HTTP范围请求直接定位目标要素,无需遍历全量数据就能完成毫秒级的空间范围过滤查询,不需要该功能的场景下可省略以实现纯流式写入。
- Data(要素数据区):文件主体部分,所有地理要素按FlatBuffers二进制格式连续紧凑排列,无冗余间隔,每个要素完整存储几何图形(支持SQL-MM Part 3定义的圆形插值等高级几何类型)和对应属性信息,配合索引区可实现高效随机访问,大幅提升大规模数据集的读取效率。
优点
- 极致读写性能:依托FlatBuffers零拷贝特性,无需全量解析文件即可直接访问数据,实测读取速度是GeoJSON的32倍、Shapefile的2-5倍,带空间筛选的读取性能甚至比GeoJSON快近千倍,TB级大规模静态数据加载效率大幅领先传统格式。
- 超高存储效率:二进制紧凑编码相比GeoJSON可减少30%-60%的文件体积,8字节坐标对齐优化CPU缓存利用率,单文件整合几何、属性与索引信息,显著降低存储成本和网络传输带宽消耗。
- 内置高效空间索引:自带可选的Packed Hilbert R-Tree索引,无需加载全量数据就能通过HTTP范围请求直接定位目标要素,实现毫秒级空间范围过滤查询,适配Web地图按需加载场景。
- 流式与跨平台兼容:支持边传输边解析的流式读写,无需等待文件完全下载即可可视化;提供C++、Python、JavaScript、Rust等多语言实现,已被GDAL、QGIS、GeoServer等主流GIS工具原生支持,BSD 2-Clause协议完全开源免费。
缺点
- 不支持随机写入:设计上刻意放弃了单要素随机修改能力,仅支持全量重写或末尾追加,无法像GeoPackage那样作为可编辑的空间数据库使用,仅适合静态数据的分发与读取场景。
- 无多图层管理能力:单文件仅能存储单个矢量图层,不支持像GeoPackage那样在一个文件内同时管理多个不同类型的图层,多图层场景下需要生成多个独立文件,管理成本更高。
- 无内置事务与高级功能:不支持数据库级别的事务控制、属性索引、复杂空间分析等高级能力,无法直接支撑多用户并发编辑、在线空间运算等复杂业务场景。
- 生态普及度仍有限:相比Shapefile、GeoJSON等传统格式,部分老旧GIS工具对其的原生支持不足,非专业GIS场景下的通用兼容性仍有提升空间。
应用场景
FlatGeobuf凭借其紧凑的二进制编码、内置空间索引和流式传输特性,广泛应用于Web端百万级矢量要素的高效可视化场景,可直接对接Leaflet、MapLibre等主流地图库,无需后端数据库支撑就能实现低带宽环境下的快速加载渲染,同时适配云原生GIS平台的对象存储分发需求,支持超图iServer等服务直接输出该格式的空间分析结果,大幅降低大规模静态地理数据集的分发和传输成本,在智能交通实时海量点位分析、环境监测遥感数据批量处理、智慧城市位置服务优化、精准农业物联网地理数据实时解析等场景中都能发挥性能优势,也成为桌面GIS工具中替代传统Shapefile、GeoJSON的高性能数据交换方案,尤其适配“一次发布、多次读取”的静态地理数据工作流。
示例图
1. FlatGeobuf在多个维度上的表现。

文件打开方式
1. featureResult资源页面。

相关 GIS 文件
MID
IMDF
STYLX
OpenDRIVE (.xodr)
参考资料
- https://zhuanlan.zhihu.com/p/378426761
- https://blog.csdn.net/gitblog_00140/article/details/152191315
- https://blog.csdn.net/gitblog_00627/article/details/153558298
- https://iclient.supermap.io/web/technical-topics/zh/flatgeobuf.html#_2-%E5%88%86%E6%9E%90%E7%94%9F%E6%88%90fgb%E6%95%B0%E6%8D%AE