3 releases (breaking)

0.3.0 Oct 14, 2024
0.2.0 Jul 21, 2024
0.1.1 Jun 23, 2024

#96 in Internationalization (i18n)

30 downloads per month

MIT license

4MB
509 lines

jgd

crates.io

Transform geodetic datums used in Japan.

Getting started

cargo add jgd

Examples

use jgd::{LatLon, Tokyo};

let LatLon(lat, lon) = Tokyo::new(LatLon(35.0, 135.0))?
    .to_jgd2000()
    .to_jgd2011()
    .degrees();

API documentation

MIT license


lib.rs:

Transform geodetic datums used in Japan.

Examples

use jgd::{LatLon, Tokyo};

let LatLon(lat, lon) = Tokyo::new(LatLon(35.0, 135.0))?
    .to_jgd2000()
    .to_jgd2011()
    .degrees();

Transform coordinates of geo crate:

use geo::{Coord, LineString, MapCoords};
use jgd::{DegreesError, LatLon, Tokyo};

let tokyo_datum = LineString::from(vec![(135.0, 35.0), (135.1, 35.1)]);
let jgd2011 = tokyo_datum.try_map_coords(|Coord { x, y }| -> Result<_, DegreesError> {
    let LatLon(y, x) = Tokyo::new(LatLon(y, x))?
        .to_jgd2000()
        .to_jgd2011()
        .degrees();
    Ok(Coord { x, y })
})?;

Features

Each feature increases the size of the build binary.

  • tky2jgd - [TKY2JGD] is used. Enabled by default.
  • patchjgd - [TOUHOKUTAIHEIYOUOKI2011] is used. Enabled by default.

Limitations

対象地域は日本国内の陸地のみ。海上や国外の座標には適さない。

一般に、測地系変換によって、ある測地系で測量・作成された座標を、あたかも別の測地系かのように模擬できる。 異なる測地系で整備された座標同士のズレを低減できても、ズレが消滅することはない。 変換方法によって精度や制約が異なり、詳細はメソッド毎のドキュメントに記載されている。

緯度経度で表される地理座標のみが対応されている。平面直角座標系などの投影座標は対応されていない。

Compatibility

パラメータグリッドによる変換は、国土地理院の TKY2JGD および PatchJGD と同等。

3パラメータによる変換は、QGIS などで使われる Proj と同等。

オリジナルの実装との差異が 1mm 以内となるようにテストされている。

References

No runtime deps