1 个不稳定版本
0.1.0 | 2024年4月11日 |
---|
252 in 地理空间
675KB
1.5K SLoC
PDAL 的 Rust 绑定
此crate提供了对PDAL库的Rust绑定。
这是一个正在进行中的项目。API不是稳定的(也不是完整的),可能会更改。
欢迎贡献!如果您有任何反馈或想贡献力量,请打开一个issue或PR。请与其他GeoRust贡献者一起在我们的Discord服务器上讨论该项目。
最小化示例
use pdal::Pipeline;
use pdal_sys::core::DimTypeId;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
// get filename from args
let filename = std::env::args().nth(1).expect("missing filename argument");
let pipeline_json = format!(
r#"
{{
"pipeline": [
{{
"type": "readers.las",
"filename": "{filename}"
}},
{{
"type": "writers.null"
}}
]
}}
"#
);
let pipeline = Pipeline::new(pipeline_json)?;
let results = pipeline.execute()?;
let views = results.point_views()?;
let view = views.first().ok_or("no point view")?;
for pid in view.point_ids().take(3) {
let x = view.point_value_as::<f64>(DimTypeId::X, pid)?;
let y = view.point_value_as::<f64>(DimTypeId::Y, pid)?;
let z = view.point_value_as::<f64>(DimTypeId::Z, pid)?;
println!("{}: ({}, {}, {})", pid, x, y, z);
}
Ok(())
}
依赖关系
~1–3MB
~51K SLoC