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解析器实现

Download history 7171/week @ 2024-05-04 10285/week @ 2024-05-11 6677/week @ 2024-05-18 7295/week @ 2024-05-25 6391/week @ 2024-06-01 6724/week @ 2024-06-08 6074/week @ 2024-06-15 8113/week @ 2024-06-22 6399/week @ 2024-06-29 7571/week @ 2024-07-06 5865/week @ 2024-07-13 8198/week @ 2024-07-20 6815/week @ 2024-07-27 8513/week @ 2024-08-03 9088/week @ 2024-08-10 5499/week @ 2024-08-17

31,680 每月下载量
26 crates (19 直接) 中使用

MIT/Apache

185KB
3.5K SLoC

wkt

Rust对WKT(已知文本)格式的读写支持。

Crate API Documentation

许可证

根据以下任一许可证授权:

由您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交给作品包含的贡献,应如上所述双重授权,不附加任何额外条款或条件。


lib.rs:

wkt 包提供了到和从WKT(已知文本)几何格式的转换。

转换通过TryFromWktToWkt特性提供,默认启用了对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] 结构体来实现 ToWktTryFromWkt 特性。

这样做时,您可能希望在其 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