3个版本
0.2.2 | 2024年7月5日 |
---|---|
0.2.1 | 2024年7月3日 |
0.2.0 | 2024年6月29日 |
#85 in 地理空间
每月 50 次下载
280KB
4.5K SLoC
jgdtrans for Rust
由日本地理空间信息局(GIAJ,原名GSIJ)为Rust提供的网格校正参数的非官方坐标转换器。
这是国土地理院公开的.par文件进行的转换(逆转换)的非官方实现。
功能
- 离线转换(不使用web API)
- 离线转换(不使用web API)
- 支持原始的前向/后向转换
- 支持原始的前向/后向转换
- 支持经过验证的后向转换
- 支持精度保证的后向转换
- 支持所有TKY2JGD、PatchJGD、PatchJGD(H)、HyokoRev、SemiDynaEXE和POS2JGD(geonetF3和ITRF2014)
- 例如,东京基准到JGD2000(EPSG:4301到EPSG:4612)和JGD2000到JGD2011(EPSG:4612到EPSG:6668)
- 上述所有功能都支持
- 干净的实现
- 易于维护的实现
- 无依赖项
- 无依赖包
jdgtrans
需要Rust的nightly通道,它依赖于float_next_up_down
功能。
可选功能
用法
此包不包含参数文件,请从GIAJ下载。
此包不提供参数文件。请从官方网站下载。
示例代码
use std::error::Error;
use std::fs;
use jgdtrans::{Point, Transformer, Format};
fn main() -> Result<(), Box<dyn Error>> {
// Deserialize par-formatted file, e.g. SemiDyna2023.par
let s = fs::read_to_string("SemiDyna2023.par").expect("file not found 'SemiDyna2023.par'");
let tf = Transformer::from_str(&s, Format::SemiDynaEXE)?;
// Make the origin of transformation
let origin = Point::new_unchecked(35.0, 135.0, 2.34);
// Prints Point { latitude: 35.0, longitude: 135.0, altitude: 2.34 }
println!("{origin:?}");
// Perform forward transformation resulting a Point
let result = tf.forward(&origin)?;
// Prints Point { latitude: 34.99999831111111, longitude: 135.00000621666666, altitude: 2.33108 }
println!("{result:?}");
// Perform backward transformation
let p = tf.backward(&result)?;
// Prints Point { latitude: 35.0, longitude: 135.0, altitude: 2.34 }
println!("{p:?}");
// Perform backward transformation compatible to the GIAJ web app/APIs
let q = tf.backward_compat(&result)?;
// Prints Point { latitude: 34.999999999999986, longitude: 135.0, altitude: 2.339999999105295 }
println!("{q:?}");
Ok(())
}
许可证
MIT或Apache-2.0
参考
- 日本地理空间信息局(GIAJ,国土地理院):https://www.gsi.go.jp/,(英文) https://www.gsi.go.jp/ENGLISH/。
- TKY2JGD for Windows Ver.1.3.79(参考实现):https://www.gsi.go.jp/sokuchikijun/tky2jgd_download.html,在国土地理院内容利用规定下发布,与CC BY 4.0兼容。
- 其他实现:Python https://github.com/paqira/jgdtrans-py,Java https://github.com/paqira/jgdtrans-java,JavaScript/TypeScript https://github.com/paqira/jgdtrans-js。
依赖项
~165KB