[−][src]Crate osmpbf
A fast reader for the OpenStreetMap PBF file format (*.osm.pbf).
Usage
Add this to your Cargo.toml
:
[dependencies]
osmpbf = "0.2"
and if you're using Rust 2015, add this line to the crate root:
extern crate osmpbf;
Example: Count ways
Here's a simple example that counts all the OpenStreetMap way elements in a file:
use osmpbf::{ElementReader, Element}; let reader = ElementReader::from_path("tests/test.osm.pbf").unwrap(); let mut ways = 0_u64; // Increment the counter by one for each way. reader.for_each(|element| { if let Element::Way(_) = element { ways += 1; } }).unwrap(); println!("Number of ways: {}", ways);
Example: Count ways in parallel
In this second example, we also count the ways but make use of all cores by decoding the file in parallel:
use osmpbf::{ElementReader, Element}; let reader = ElementReader::from_path("tests/test.osm.pbf").unwrap(); // Count the ways let ways = reader.par_map_reduce( |element| { match element { Element::Way(_) => 1, _ => 0, } }, || 0_u64, // Zero is the identity value for addition |a, b| a + b // Sum the partial results ).unwrap(); println!("Number of ways: {}", ways);
Re-exports
pub use blob::*; |
pub use block::*; |
pub use dense::*; |
pub use elements::*; |
pub use indexed::*; |
pub use mmap_blob::*; |
pub use reader::*; |
Modules
blob | Read and decode blobs |
block |
|
dense | Iterate over the dense nodes in a |
elements | Nodes, ways and relations |
indexed | Speed up searches by using an index |
mmap_blob | Iterate over blobs from a memory map |
reader | High level reader interface |
Structs
Error | An error that can occur when reading PBF files. |
Enums
BlobError | An error that occurs when decoding a blob. |
ErrorKind | The specific type of an error. |
Type Definitions
Result | A type alias for |