#gis #jgd #par-file

nightly jgdtrans

基于网格校正参数(par文件)的坐标转换器

3个版本

0.2.2 2024年7月5日
0.2.1 2024年7月3日
0.2.0 2024年6月29日

#85 in 地理空间

每月 50 次下载

MIT/Apache

280KB
4.5K SLoC

jgdtrans for Rust

Crates.io Version GitHub Actions Workflow Status docs.rs Crates.io License

由日本地理空间信息局(GIAJ,原名GSIJ)为Rust提供的网格校正参数的非官方坐标转换器。

这是国土地理院公开的.par文件进行的转换(逆转换)的非官方实现。

功能

  • 离线转换(不使用web API)
    • 离线转换(不使用web API)
  • 支持原始的前向/后向转换
    • 支持原始的前向/后向转换
  • 支持经过验证的后向转换
    • 支持精度保证的后向转换
  • 支持所有TKY2JGDPatchJGDPatchJGD(H)HyokoRevSemiDynaEXEPOS2JGD(geonetF3和ITRF2014)
    • 例如,东京基准到JGD2000(EPSG:4301到EPSG:4612)和JGD2000到JGD2011(EPSG:4612到EPSG:6668)
    • 上述所有功能都支持
  • 干净的实现
    • 易于维护的实现
  • 无依赖项
    • 无依赖包

jdgtrans需要Rust的nightly通道,它依赖于float_next_up_down功能。

可选功能

  • serde:通过serde支持序列化/反序列化,这需要依赖于serde

用法

此包不包含参数文件,请从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

参考

  1. 日本地理空间信息局(GIAJ,国土地理院):https://www.gsi.go.jp/,(英文) https://www.gsi.go.jp/ENGLISH/
  2. TKY2JGD for Windows Ver.1.3.79(参考实现):https://www.gsi.go.jp/sokuchikijun/tky2jgd_download.html,在国土地理院内容利用规定下发布,与CC BY 4.0兼容。
  3. 其他实现:Python https://github.com/paqira/jgdtrans-py,Java https://github.com/paqira/jgdtrans-java,JavaScript/TypeScript https://github.com/paqira/jgdtrans-js

依赖项

~165KB