[−][src]Crate 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.
Installation
[dependencies]
flatgeobuf = "0.3"
Reading a FlatGeobuf file
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"]); }
Zero-copy feature access
let _ = feature.iter_properties(&header, |i, n, v| { println!("columnidx: {} name: {} value: {:?}", i, n, v); false // don't abort });
Zero-copy geometry reader
Geometries can be accessed by implementing the GeomReader
trait.
struct CoordPrinter; impl GeomReader for CoordPrinter { fn pointxy(&mut self, x: f64, y: f64, _idx: usize) { println!("({} {})", x, y); } } let mut coord_printer = CoordPrinter {}; let geometry = feature.geometry().unwrap(); geometry.parse(&mut coord_printer, header.geometry_type());
Structs
Column | |
ColumnArgs | |
ColumnBuilder | |
ColumnMeta | |
Crs | |
CrsArgs | |
CrsBuilder | |
Dimensions | |
Feature | |
FeatureArgs | |
FeatureBuilder | |
FeatureReader | FlatGeobuf feature reader |
Geometry | |
GeometryArgs | |
GeometryBuilder | |
Header | |
HeaderArgs | |
HeaderBuilder | |
HeaderReader | FlatGeobuf header reader |
NodeItem | R-Tree node |
PackedRTree | Packed Hilbert R-Tree |
SearchResultItem | Bbox filter search result |
Enums
ColumnOffset | |
ColumnType | |
ColumnValue | |
CrsOffset | |
FeatureOffset | |
GeometryOffset | |
GeometryType | |
HeaderOffset |
Constants
ENUM_MAX_COLUMN_TYPE | |
ENUM_MAX_GEOMETRY_TYPE | |
ENUM_MIN_COLUMN_TYPE | |
ENUM_MIN_GEOMETRY_TYPE | |
ENUM_NAMES_COLUMN_TYPE | |
ENUM_NAMES_GEOMETRY_TYPE | |
ENUM_VALUES_COLUMN_TYPE | |
ENUM_VALUES_GEOMETRY_TYPE | |
MAGIC_BYTES | |
VERSION |
Traits
GeomReader |