[][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

Functions

calc_extent
enum_name_column_type
enum_name_geometry_type
finish_feature_buffer
finish_header_buffer
finish_size_prefixed_feature_buffer
finish_size_prefixed_header_buffer
get_root_as_feature
get_root_as_header
get_size_prefixed_root_as_feature
get_size_prefixed_root_as_header
hilbert_sort
is_collection
read_geometry