/** @packageDocumentation * @module OrbitGT */ declare type int32 = number; declare type float64 = number; import { Coordinate } from "../geom/Coordinate"; /** * Class Ellipsoid defines the parameters of an earth ellipsoid. * * Based on the following document: * * Coordinate Conversions and Transformations including Formulas * Guidance Note Number 7, part 2 * Revised May 2005 * Available at: http://www.epsg.org/ * * Geocentric coordinates are defined as follows: * The point (0,0,0) denotes the center of the ellipsoid. The z-axis is defined as being parallel to the earth rotational axis, pointing towards north. * The x-axis intersects the ellipsoid at the 0 deg latitude, 0 deg longitude point. * * @version 1.0 July 2005 */ /** @internal */ export declare class Ellipsoid { /** The code */ private _code; /** The name */ private _name; /** The code of the unit of measure */ private _unitCode; /** Semi-major axis (meter) */ private _a; /** Semi-minor axis (meter) (derived) */ private _b; /** Flattening (derived) */ private _f; /** Inverse flattening */ private _invF; /** Eccentricity (derived) */ private _e; /** Eccentricity squared (derived) */ private _e2; /** * Create a new ellipsoid. * @param code the code. * @param name the name. * @param unitCode the code of the unit of measure. * @param a the semi-major axis. * @param invF the inverse flattening (value like 300, not like 1/300). * @param b the semi-minor axis. */ constructor(code: int32, name: string, unitCode: int32, a: float64, invF: float64, b: float64); /** * Get the code. * @return the code. */ getCode(): int32; /** * Get the name. * @return the name. */ getName(): string; /** * Get the code of the unit of measure. * @return the code of the unit of measure. */ getUnitCode(): int32; /** * Get the semi-major axis (in meter). * @return the semi-major axis. */ getA(): float64; /** * Get the semi-minor axis (in meter). * @return the semi-minor axis. */ getB(): float64; /** * Get the flattening. * @return the flattening. */ getF(): float64; /** * Get the inverse flattening. * @return the inverse flattening. */ getInvF(): float64; /** * Get the eccentricity. * @return the eccentricity. */ getE(): float64; /** * Get the radius of curvature of the ellipsoid in the plane of the meridian at a given latitude (how latitude curves). * @param lat the latitude (in radians). * @return a radius (in meter). */ getMeridianRadius(lat: float64): float64; /** * Get the radius of the circle defined by all points at a certain latitude (a circle of latitude, also called a parallel) (a at latitude 0, 0 at latitude 90) (how longitude curves). * @param lat the latitude (in radians). * @return a radius (in meter). */ getParallelRadius(lat: float64): float64; /** * Get the radius of curvature of the ellipsoid perpendicular to the meridian at a given latitude (a at latitude 0, a*a/b at latitude 90). * @param lat the latitude (in radians). * @return a radius (in meter). */ getPrimeVerticalRadius(lat: float64): float64; /** * Get the radius of curvature of the ellipsoid perpendicular to the meridian at a given latitude (a at latitude 0, a*a/b at latitude 90). * @param lat the latitude (in radians). * @param sinLat the sinus of the latitude. * @return a radius (in meter). */ private getPrimeVerticalRadius2; /** * Get the number of meter per radian of longitude. * @param lat the latitude (in radians). * @return the number of meter per radian. */ getMeterPerRadOfLon(lat: float64): float64; /** * Get the number of meter per degree of longitude. * @param lat the latitude (in radians). * @return the number of meter per degree. */ getMeterPerDegreeOfLon(lat: float64): float64; /** * Get the number of meter per radian of latitude. * @param lat the latitude (in radians). * @return the number of meter per radian. */ getMeterPerRadOfLat(lat: float64): float64; /** * Get the number of meter per degree of latitude. * @param lat the latitude (in radians). * @return the number of meter per degree. */ getMeterPerDegreeOfLat(lat: float64): float64; /** * Calculate the secant. * @param v an angle (in radians). * @return the secant. */ private static sec; /** * Convert 3D geographic coordinates to 3D geocentric coordinates. * See the EPSG Guidance Note, 2.2.1 * @param geographic the geographic coordinates (lon(x) and lat(y) in radians, height(z) in meter). * @param geocentric the new geocentric coordinates (in meter) (the result object). */ toGeoCentric(geographic: Coordinate, geocentric: Coordinate): void; /** * Convert 3D geographic coordinates to 3D geocentric coordinates. * See the EPSG Guidance Note, 2.2.1 * @param geographic the geographic coordinates (lon(x) and lat(y) in degrees, height(z) in meter). * @param geocentric the new geocentric coordinates (in meter) (the result object). */ toGeoCentricDeg(geographic: Coordinate, geocentric: Coordinate): void; /** * Convert 3D geocentric coordinates to 3D geographic coordinates. * See the EPSG Guidance Note, 2.2.1 * @param geocentric the geocentric coordinates (in meter). * @param geographic the new geographic coordinates (lon(x) and lat(y) in radians, height(z) in meter) (the result object). */ toGeoGraphic(geocentric: Coordinate, geographic: Coordinate): void; /** * Convert 3D geocentric coordinates to 3D geographic coordinates. * See the EPSG Guidance Note, 2.2.1 * @param geocentric the geocentric coordinates (in meter). * @param geographic the new geographic coordinates (lon(x) and lat(y) in degrees, height(z) in meter) (the result object). */ toGeoGraphicDeg(geocentric: Coordinate, geographic: Coordinate): void; /** * Check if another ellipsoid is compatible with this one. * @param other the other ellipsoid. * @return true if compatible. */ isCompatible(other: Ellipsoid): boolean; /** * The standard toString method. * @see Object#toString */ toString(): string; } export {}; //# sourceMappingURL=Ellipsoid.d.ts.map