flatgeobuf 0.3.1

FlatGeobuf for Rust.
Documentation

FlatGeobuf for Rust

Rust implementation of FlatGeobuf.

FlatGeobuf is a performant binary encoding for geographic data based on flatbuffers that can hold a collection of Simple Features including circular interpolations as defined by SQL-MM Part 3.

Usage

use flatgeobuf::*;

let mut file = BufReader::new(File::open("countries.fgb")?);
let hreader = HeaderReader::read(&mut file)?;
let header = hreader.header();

let mut freader = FeatureReader::select_bbox(&mut file, &header, 8.8, 47.2, 9.5, 55.3)?;
while let Ok(feature) = freader.next(&mut file) {
    let props = feature.properties_map(&header);
    println!("{}", props["name"]);
}

With async HTTP client:

use flatgeobuf::*;

let mut client = BufferedHttpClient::new("https://pkg.sourcepole.ch/countries.fgb");
let hreader = HttpHeaderReader::read(&mut client).await.unwrap();
let header = hreader.header();

let mut freader = HttpFeatureReader::select_all(&header, hreader.header_len()).await?;
while let Ok(feature) = freader.next(&mut client).await {
    let props = feature.properties_map(&header);
    println!("{}", props["name"]);
}

See documentation and tests for more examples.

Run tests and benchmarks

cargo test

cargo bench