pbf-craft 0.1.0

A Rust library for reading and writing OpenSteetMap PBF file format.
pbf-craft-0.1.0 has been yanked.
Visit the last successful build: pbf-craft-1.0.3

pbf-craft

A Rust library and command-line tool for reading and writing OpenSteetMap PBF file format.

  • Written in pure Rust
  • Provides an indexing feature to the PBF to greatly improve read performance.

Usage

Add this to your Cargo.toml:

[dependencies]
pbf-craft = "0.1"

Reading a PBF file:

let reader = PbfReader::from_path(&self.file).unwrap();
reader
    .par_find(Some(&ElementType::Way), |el| {
        if let Element::Way(way) = el {
            return way.way_nodes.iter().any(|ref_node| ref_node.id == first)
                && way.way_nodes.iter().any(|ref_node| ref_node.id == second);
        }
        return false;
    })
    .expect("node pair error")

Finding an element using the index feature. IndexedReader creates an index file for the PBF file, which allows you to quickly locate and retrieve an element when looking for it using its ID.

let mut indexed_reader = IndexedReader::from_path(&self.file).unwarp();
let node = indexed_reader.find(&ElementType::Node, 12345678).unwrap();