From 403e57545f1c95da55ec82b86613dc2645ca6a7b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 4 Sep 2019 14:33:39 +0200 Subject: C API: add proj_create_ellipsoidal_3D_cs() --- src/iso19111/coordinatesystem.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/iso19111/coordinatesystem.cpp') diff --git a/src/iso19111/coordinatesystem.cpp b/src/iso19111/coordinatesystem.cpp index 5a852b0d..c452da44 100644 --- a/src/iso19111/coordinatesystem.cpp +++ b/src/iso19111/coordinatesystem.cpp @@ -789,6 +789,28 @@ EllipsoidalCS::createLongitudeLatitude(const common::UnitOfMeasure &unit) { // --------------------------------------------------------------------------- +/** \brief Instantiate a EllipsoidalCS with a Longitude (first), Latitude + * (second) axis and ellipsoidal height (third) axis. + * + * @param angularUnit Angular unit of the latitude and longitude axes. + * @param linearUnit Linear unit of the ellipsoidal height axis. + * @return a new EllipsoidalCS. + * @since 7.0 + */ +EllipsoidalCSNNPtr EllipsoidalCS::createLongitudeLatitudeEllipsoidalHeight( + const common::UnitOfMeasure &angularUnit, + const common::UnitOfMeasure &linearUnit) { + return EllipsoidalCS::create( + util::PropertyMap(), CoordinateSystemAxis::createLONG_EAST(angularUnit), + CoordinateSystemAxis::createLAT_NORTH(angularUnit), + CoordinateSystemAxis::create( + util::PropertyMap().set(IdentifiedObject::NAME_KEY, + AxisName::Ellipsoidal_height), + AxisAbbreviation::h, AxisDirection::UP, linearUnit)); +} + +// --------------------------------------------------------------------------- + //! @cond Doxygen_Suppress /** \brief Return the axis order in an enumerated way. */ EllipsoidalCS::AxisOrder EllipsoidalCS::axisOrder() const { -- cgit v1.2.3