1个不稳定版本
0.1.0 | 2023年6月8日 |
---|
#277 in 地理空间
68KB
1.5K SLoC
Proj4wkt
将WKT字符串转换为proj4字符串。
支持WKT1和WKT2格式。
这是一个proj4rs
的配套crate:由于这个转换仅限于proj4rs
支持的投影。随着proj4rs
支持的投影越来越多,`proj4wt`将支持更多的转换。
关于doc.rs的文档
为WASM编译
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