1个不稳定版本

0.1.0 2023年6月8日

#277 in 地理空间

MIT/Apache

68KB
1.5K SLoC

Proj4wkt

将WKT字符串转换为proj4字符串。

支持WKT1和WKT2格式。

这是一个proj4rs的配套crate:由于这个转换仅限于proj4rs支持的投影。随着proj4rs支持的投影越来越多,`proj4wt`将支持更多的转换。

关于doc.rs的文档

为WASM编译

安装wasm-pack

wasm-pack build --target web --no-default-features

或者如果您已经安装了cargo-make,可以使用以下命令

cargo make wasm

运行WASM示例

存在一个index.html文件用于在浏览器中测试WASM模块。

出于安全原因,您需要从服务器上运行它;您可以使用以下命令从Python弹出服务器

python3 -m http.server

服务器将自动在当前目录中提供index.html文件。


lib.rs:

WKT坐标系解析器

将WKT坐标系转换为proj字符串

支持WKT1和WKT2格式。

这是一个proj4rs的配套crate,因为这个转换仅限于proj4rs支持的投影。随着proj4rs支持的投影越来越多,proj4wt将支持更多的转换。

此crate可以作为WASM包构建

示例

use proj4wkt::wkt_to_projstring;

const nad83: &str = concat!(
   r#"PROJCS["NAD83 / Massachusetts Mainland",GEOGCS["NAD83","#,
   r#"DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,"#,
   r#"AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,"#,
   r#"AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,"#,
   r#"AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,"#,
   r#"AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],"#,
   r#"PARAMETER["standard_parallel_1",42.68333333333333],"#,
   r#"PARAMETER["standard_parallel_2",41.71666666666667],"#,
   r#"PARAMETER["latitude_of_origin", -41],PARAMETER["central_meridian",-71.5],"#,
   r#"PARAMETER["false_easting",200000],PARAMETER["false_northing",750000],"#,
   r#"AUTHORITY["EPSG","26986"],AXIS["X",EAST],AXIS["Y",NORTH]]"#,
);

let projstr = wkt_to_projstring(nad83).unwrap();
assert_eq!(
    projstr,
    concat!(
        "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667",
        " +lat_0=-41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +units=m +a=6378137",
        " +rf=298.257222101 +towgs84=0,0,0,0,0,0,0",
    )
);

依赖项

~1.2–4MB
~75K SLoC