osm-node-cache

Build Crates.io Documentation

Flat file node cache stores lat,lon coordinate pairs as u64 values with their index being the position in the file. In other words - 0th u64 value is stored as the first 8 bytes, etc.

The library allows multithreaded access to the cache, and can dynamically grow the cache file.

```rust // Libraries: osmpbf, rayon fn main() { let reader = BlobReader::frompath("planet.osm.pbf").unwrap(); let filecache = DenseFileCache::new(PathBuf::from("node.cache"))?;

reader.par_bridge().for_each_with(
    file_cache,
    |fc, blob| {
        let mut cache = fc.get_accessor();
        if let BlobDecode::OsmData(block) = blob.unwrap().decode().unwrap() {
            for node in block.groups().flat_map(|g| g.dense_nodes()) {
                cache.set_lat_lon(node.id as usize, node.lat(), node.lon());
            }
        };
    });

} ```

License

You may use this library under MIT or Apache 2.0 license