25个版本
0.11.0 | 2024年7月25日 |
---|---|
0.10.3 | 2022年6月22日 |
0.10.1 | 2022年5月2日 |
0.10.0 | 2022年2月25日 |
0.0.3 | 2015年2月1日 |
#88 在 解析器实现
31,680 每月下载量
在 26 个 crates (19 直接) 中使用
185KB
3.5K SLoC
wkt
Rust对WKT(已知文本)格式的读写支持。
许可证
根据以下任一许可证授权:
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交给作品包含的贡献,应如上所述双重授权,不附加任何额外条款或条件。
lib.rs
:
wkt
包提供了到和从WKT(已知文本)几何格式的转换。
转换通过TryFromWkt
和ToWkt
特性提供,默认启用了对geo_types
原语的实现。
对于高级用法,请参阅types
模块以获取内部使用的类型列表。
此包具有可选的serde
集成,用于反序列化包含WKT的字段。请参阅deserialize
以获取示例。
示例
从WKT字符串读取geo_types
// 此示例需要geo-types功能(默认开启)。 use wkt::TryFromWkt; use geo_types::Point;
let point: Point = Point::try_from_wkt_str("POINT(10 20)").unwrap(); assert_eq!(point.y(), 20.0);
## Write `geo_types` to a WKT string
// This example requires the geo-types feature (on by default).
use wkt::ToWkt;
use geo_types::Point;
let point: Point<f64> = Point::new(1.0, 2.0);
assert_eq!(point.wkt_string(), "POINT(1 2)");
读取或写入您自己的几何类型
对于您的几何类型不使用geo-types
? 没问题!
您可以使用 Wkt::from_str
将 WKT 字符串解析为该软件包的中间几何结构。您可以直接使用它,或者如果您有希望使用的自己的几何类型,可以使用该 [Wkt
] 结构体来实现 ToWkt
或 TryFromWkt
特性。
这样做时,您可能希望在其 item
字段中匹配 WKT types
(点、线字符串等)之一。
use std::str::FromStr;
use wkt::Wkt;
let wktls: Wkt<f64> = Wkt::from_str("LINESTRING(10 20, 20 30)").unwrap();
let ls = match wktls {
Wkt::LineString(line_string) => {
// you now have access to the `wkt::types::LineString`.
assert_eq!(line_string.0[0].x, 10.0);
}
_ => unreachable!(),
};
依赖项
~1–1.6MB
~35K SLoC