23个版本 (10个稳定版本)

4.3.0 2024年8月16日
4.2.1 2024年6月17日
4.2.0 2024年5月28日
4.1.0 2024年2月24日
0.3.0 2020年3月20日

5 in 地理空间

Download history 47/week @ 2024-05-03 38/week @ 2024-05-10 128/week @ 2024-05-17 292/week @ 2024-05-24 126/week @ 2024-05-31 139/week @ 2024-06-07 244/week @ 2024-06-14 211/week @ 2024-06-21 141/week @ 2024-06-28 47/week @ 2024-07-05 99/week @ 2024-07-12 209/week @ 2024-07-19 61/week @ 2024-07-26 43/week @ 2024-08-02 524/week @ 2024-08-09 201/week @ 2024-08-16

每月 857 下载量
用于 9 crates

BSD-2-Clause

250KB
4.5K SLoC

FlatGeobuf for Rust

Rust实现的FlatGeobuf。

FlatGeobuf是基于flatbuffers的高性能二进制编码,用于地理数据,可以存储包括由SQL-MM第3部分定义的圆形插值在内的简单特征集合。

用法

use flatgeobuf::*;

fn main() {
    let mut filein = BufReader::new(File::open("countries.fgb")?);
    let mut fgb = FgbReader::open(&mut filein)?.select_all()?;
    while let Some(feature) = fgb.next()? {
        println!("{}", feature.property::<String>("name").unwrap());
        println!("{}", feature.to_json()?);
    }
}

使用异步HTTP客户端

use flatgeobuf::*;

async fn process() {
    let mut fgb = HttpFgbReader::open("https://flatgeobuf.org/test/data/countries.fgb")
        .await?
        .select_bbox(8.8, 47.2, 9.5, 55.3)
        .await?;
    while let Some(feature) = fgb.next().await? {
        let props = feature.properties()?;
        println!("{}", props["name"]);
        println!("{}", feature.to_wkt()?);
    }
}

查看文档测试以获取更多示例。

运行测试和基准

cargo test

cargo criterion

运行fuzzer

cargo install cargo-fuzz

cargo +nightly fuzz run read

依赖关系

~3–17MB
~236K SLoC