13个版本 (4个重大更新)
0.5.2 | 2024年6月9日 |
---|---|
0.5.1 | 2024年6月5日 |
0.5.0 | 2024年5月26日 |
0.4.1 | 2024年2月18日 |
0.1.3 | 2023年12月14日 |
#96 in 地理空间
每月39次下载
用于 fgbfile
54KB
1.5K SLoC
geoserde
Geoserde是地理特征结构体和GIS文件格式之间的适配器。
请参阅包含一些示例的API文档。
在MIT许可证下授权。
lib.rs
:
Geoserde是地理特征结构体和GIS文件格式之间的适配器。
入门指南
cargo add geoserde
Cargo功能
geozero
- 为geozero处理器实现geoserde接收器。默认启用。
示例
use geo_types::Point;
use geoserde::FeatureSerializer;
use geozero::geojson::GeoJsonWriter;
use serde::Serialize;
// Print two features to the console in GeoJson format
fn main() -> anyhow::Result<()> {
// If you want to write to a file, use BufWriter<File> instead
let mut buf = vec![];
// Any format that has an implementation of geozero::FeatureProcessor can be used,
// such as wkt, shp, fgb, etc. See also https://docs.rs/geozero/latest/geozero/
let mut geojson = GeoJsonWriter::new(&mut buf);
// Serialize features to GeoJson format
let mut ser = FeatureSerializer::new(&mut geojson);
my_features().serialize(&mut ser)?;
println!("{}", std::str::from_utf8(&buf)?);
Ok(())
}
// Create feature array
fn my_features() -> impl Serialize {
[
Station {
name: "King's Cross",
europe: true,
loc: Point::new(51.5321, -0.1233),
},
Station {
name: "Tokyo",
europe: false,
loc: Point::new(139.7661, 35.6812),
},
]
}
// Geographic feature
#[derive(Serialize)]
struct Station {
// Property
name: &'static str,
// Property
europe: bool,
// Geometry
loc: Point,
}
依赖项
~2–3MB
~63K SLoC