You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust Geo Crate实操:如何将geo::Polygon转为wkt::Geometry并输出WKT文本

Rust geo类型转WKT字符串实现方案

1. 配置依赖

首先在Cargo.toml中添加对应依赖,需要主动开启wkt包的geo互转特征:

[dependencies]
geo = "0.27"
wkt = { version = "0.10", features = ["geo"] }

2. 完整转换代码

wkt包开启geo特征后,会自动实现geo几何类型到wkt::Geometry的TryInto转换逻辑,直接调用即可:

use geo::{LineString, Polygon};
use std::convert::TryInto;
use wkt::Geometry;

fn main() {
    let polygon = Polygon::new(
        LineString::from(vec![
            (0., 0.),
            (0., 1.),
            (1., 1.),
            (1., 0.),
        ]),
        vec![],
    );

    // 转换为wkt::Geometry类型
    let wkt_geom: Geometry<f64> = polygon.try_into().expect("几何类型转换失败");
    // 直接转为WKT格式字符串
    let wkt_str = wkt_geom.to_string();
    
    println!("{}", wkt_str);
}

3. 输出结果

运行代码后会打印符合标准的WKT字符串:

POLYGON((0 0,0 1,1 1,1 0,0 0))

转换时会自动补全多边形首尾重合的点,符合WKT格式规范。

注意事项

  • 如果不开启wkt的geo特征,编译时会找不到对应的转换实现
  • 合法的geo几何类型转换为wkt::Geometry不会失败,简单场景可直接用unwrap()替代expect()
  • 如需反向将WKT字符串转为geo类型,可先将字符串解析为wkt::Geometry,再用try_into转为对应geo类型即可

内容的提问来源于stack exchange,提问作者Raphael Prinz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:24:03