#osm-pbf #openstreetmap #pbf #osm

osmpbfreader

使用 Rust 读取 OpenStreetMap PBF 文件

35 个版本

0.16.1 2023年12月1日
0.16.0 2023年2月6日
0.15.2 2022年2月1日
0.15.1 2021年11月2日
0.5.0 2016年6月27日

#15 in 地理空间

Download history 491/week @ 2024-04-12 419/week @ 2024-04-19 402/week @ 2024-04-26 319/week @ 2024-05-03 533/week @ 2024-05-10 533/week @ 2024-05-17 436/week @ 2024-05-24 445/week @ 2024-05-31 494/week @ 2024-06-07 440/week @ 2024-06-14 605/week @ 2024-06-21 490/week @ 2024-06-28 510/week @ 2024-07-05 441/week @ 2024-07-12 521/week @ 2024-07-19 453/week @ 2024-07-26

每月下载量2,036
19crate(15 个直接)中使用

WTFPL 许可证

41KB
766

osmpbfreader-rs 构建状态 构建状态 依赖关系

读取 OpenStreetMap PBF 文件 使用 rust 的简单有效方法。此库的主要灵感来自 OSM-binary

文档

Docs.rs 上查找

使用此库

此crate与Cargo一起工作,位于 crates.io 上。该软件包定期更新。

对于完整的示例,请参阅 示例

您可以在 Geofabrik 的免费下载服务器 上找到 OSM PBF 文件。

性能

使用不同示例编译的发布模式

$ grep CPU /proc/cpuinfo | uniq -c
      8 model name	: Intel(R) Core(TM) i7-4702HQ CPU @ 2.20GHz
$ rustc --version
rustc 1.14.0 (e8a012324 2016-12-16)
$ ls -sh france-latest.osm.pbf
3,3G france-latest.osm.pbf
$ time ./target/release/examples/tutorial france-latest.osm.pbf
416483839 objects in "france-latest.osm.pbf"

real	4m24.784s
user	4m18.476s
sys	0m6.164s
$ time ./target/release/examples/count france-latest.osm.pbf admin_level 8
counting objects with tags["admin_level"] = "8"...
53 nodes, mean coord: 46.25862766415095, 2.9082348867924517.
108190 ways, mean |nodes|: 72.09304926518162
35984 relations, mean |references|: 8.705369052912406

real	1m10.117s
user	8m16.164s
sys	0m23.120s
$ time ./target/release/examples/count_with_deps france-latest.osm.pbf admin_level 8
counting objects with tags["admin_level"] = "8" and their depedencies...
9497221 nodes, mean coord: 46.69071931974348, 2.2632424769587915.
136950 ways, mean |nodes|: 70.35282949981745
36408 relations, mean |references|: 8.771121731487586

real	5m9.814s
user	33m52.820s
sys	0m28.624s

许可证

本作品是免费的。您可以根据 Sam Hocevar 发布的 Do What The Fuck You Want To Public License,版本 2 的条款重新分发或修改它。有关更多信息,请参阅 COPYING 文件。

注意,src/fileformat.protosrc/osmformat.proto 来自 OSM-binary,采用 MIT 许可证。

依赖项

~2.3–3MB
~65K SLoC