oxiproj-transformations 0.1.2

Datum transformations and coordinate conversions for OxiProj.
Documentation

oxiproj-transformations

Datum transformations and coordinate conversions for OxiProj.

Part of the OxiProj workspace — a 100% Pure-Rust port of PROJ 9.8.0.

Features

  • Helmert (7-/14-parameter) similarity transformations between datums
  • Molodensky / abridged Molodensky horizontal datum shifts
  • Grid-based NTv2/GTX horizontal and vertical shifts via oxiproj-grids integration
  • Geocentric ↔ geographic conversions and unit conversions (degree ↔ radian, metre ↔ foot, etc.)
  • Vertical transformations: geoid height models, vertical offset and slope
  • Mirrors the oxiproj-projections build/param pattern: TransParamLookup, TransParams, TransBuild

Usage

// Transformations are normally invoked through oxiproj-engine or the oxiproj facade.
// Direct dispatch example:
use oxiproj_engine::{create, Context};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let ctx = Context::default();
    // 3-parameter geocentric translation from ED50 to WGS84.
    let pj = create(
        &ctx,
        "+proj=helmert +x=-84.0 +y=-97.0 +z=-117.0 +ellps=intl",
    )?;
    let r = pj.forward(3_900_000.0, 900_000.0, 100_000.0, f64::INFINITY)?;
    println!("({:.2}, {:.2}, {:.2})", r.x, r.y, r.z);
    Ok(())
}

License

Apache-2.0. Copyright 2026 COOLJAPAN OU (Team Kitasan).