#spatial-index #hierarchical #hexagonal #bindings #uber #safe #own

sys libh3-sys

绑定Uber的六边形层次空间索引 - H3

4个版本

0.1.3 2020年4月3日
0.1.2 2020年3月18日
0.1.1 2020年3月9日
0.1.0 2020年3月8日

#12 in #hexagonal


libh3 中使用

MIT 许可

20KB
592 代码行,不包括注释

libh3-sys - Rust中Uber的六边形层次空间索引的包装器

此crate提供了调用底层H3库的不安全Rust函数。

libh3提供了使用安全Rust的H3接口。

欢迎贡献。

在此处查看文档

https://docs.rs/libh3-sys/

示例 build.rs

假设您已将H3项目存档到您的crate源树中的deps/h3。现在您可以编写一个build.rs脚本,该脚本将静态构建和链接外部依赖项到您的crate中,从而消除对H3任何系统安装的依赖。

use cmake::Config;

fn main() {
    let build_type = if cfg!(debug_assertions) {
        "Debug"
    } else {
        "Release"
    };

    let dst = Config::new("deps/h3")
        .define("BUILD_TESTING", "OFF")
        .define("BUILD_GENERATORS", "OFF")
        .define("BUILD_BENCHMARKS", "OFF")
        .define("BUILD_FILTERS", "OFF")
        .define("ENABLE_LINTING", "OFF")
        .define("ENABLE_DOCS", "OFF")
        .define("ENABLE_COVERAGE", "OFF")
        .define("BUILD_TYPE", build_type)
        .build();
    println!("cargo:rustc-link-search=native={}/lib", dst.display());
    println!("cargo:cargo:include={}/include", dst.display());
    println!("cargo:rustc-link-lib=static=h3");
}

并将此添加到您的Cargo.tomlbuild-dependencies部分

[build-dependencies]
cmake = "0.1"

依赖项

~235KB