oxiproj-core 0.1.2

Foundation types for OxiProj: coordinates, errors, ellipsoids, datums, and units.
Documentation

oxiproj-core

Foundation types for OxiProj: coordinates, errors, ellipsoids, datums, and units.

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

Features

  • Rich coordinate types: Coord, Xy, Xyz, Xyzt, Lp, Lpz, Lpzt, Enu, Geod, Uv, Uvw, Uvwt, Opk
  • Ellipsoid definitions and construction helpers (from_a_b, from_a_f, from_a_rf, from_a_es, sphere)
  • Built-in datum table (find_datum, DatumDef, DatumParams) and prime-meridian registry
  • Geodetic math primitives: Clenshaw series, Gauss–Krüger helpers, authalic/auxiliary-latitude conversions, and polynomial evaluation
  • ProjError / ProjResult unified error type used throughout the workspace
  • Optional serde support via the serde feature flag

Usage

use oxiproj_core::{Ellipsoid, named_ellipsoid, Coord, ProjResult};

fn main() -> ProjResult<()> {
    // Look up the WGS 84 ellipsoid by name.
    let e = named_ellipsoid("WGS84")?;
    println!("a = {}, 1/f = {}", e.a, 1.0 / e.f);

    // Build a coordinate (longitude, latitude in radians).
    let _c = Coord::new(0.2094395, 0.9599310); // ~12°E, 55°N in radians
    Ok(())
}

License

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