5 个不稳定版本
0.3.3 | 2023年5月23日 |
---|---|
0.3.2 | 2023年4月10日 |
0.2.0 | 2023年4月1日 |
0.1.0 | 2023年3月27日 |
#1405 in 解析器实现
245KB
2.5K SLoC
osm-pbf
读取和写入 PBF 格式 用于 Open Street Map (OSM)。
功能
读取
读取 PBF 格式有两步:解析和解码。解析将原始数据构建成 文件块。解码将文件块转换为包含的 OSM 元素。
写入
类似地,写入 PBF 格式也有两步:编码和序列化。编码将 OSM 元素转换为文件块。此包目前不支持编码。序列化将文件块扁平化为原始数据。
执行
此包使用异步 I/O 以与 tokio 一起使用。
并行性
代码本质上是顺序的,但由于 PBF 中的文件块是独立的,因此可以并行化编码/解码。
读取并行化示例
- 调用
get_osm_pbf_locations
获取文件块位置的流 - 独立地对每个位置调用
parse_osm_pbf_at_location
- 按需处理块
写入并行化示例
- 将您的块拆分成块
- 独立地对每个块调用
write_osm_pbf
并使用内存中的向量作为写入器 - 每个调用完成后,将它们写入最终位置(即文件)
压缩
为每个支持的压缩算法都有功能
名称 | 默认功能 | 支持 |
---|---|---|
Zlib | ✅ | ✅ |
Zstd | ❌ | ✅ |
Lzma | ❌ | ✅ |
Lz4 | ❌ | ❌ |
Bzip2 | ❌ | ❌ |
Lz4 支持尚未提供。Bzip2 已弃用多年,因此不受支持。
对编码没有精细的控制,但如果您感兴趣,请随时提交问题。
依赖项
~5.5–8.5MB
~147K SLoC