diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-11-29 17:30:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-29 17:30:16 +0100 |
| commit | edd7f165f88958c1d3147150639b67b8dd60db09 (patch) | |
| tree | c5524a280f5feeba1a0339b28ab8ac074cd1186e /src/iso19111/io.cpp | |
| parent | 2ae0766eefc598c21d923a0e85d994b93c5fe7a4 (diff) | |
| parent | 4caf32aedd4da6b1fd1b1ce0e04a1a08dc1e3f33 (diff) | |
| download | PROJ-edd7f165f88958c1d3147150639b67b8dd60db09.tar.gz PROJ-edd7f165f88958c1d3147150639b67b8dd60db09.zip | |
Merge pull request #2450 from rouault/setAllowEllipsoidalHeightAsVerticalCRS
Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL
Diffstat (limited to 'src/iso19111/io.cpp')
| -rw-r--r-- | src/iso19111/io.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 125105ec..8a42e7ee 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -139,6 +139,7 @@ struct WKTFormatter::Private { bool primeMeridianInDegree_ = false; bool use2019Keywords_ = false; bool useESRIDialect_ = false; + bool allowEllipsoidalHeightAsVerticalCRS_ = false; OutputAxisRule outputAxis_ = WKTFormatter::OutputAxisRule::YES; }; Params params_{}; @@ -250,6 +251,8 @@ WKTFormatter::setOutputAxis(OutputAxisRule outputAxisIn) noexcept { * * The default is strict mode, in which case a FormattingException can be * thrown. + * In non-strict mode, a Geographic 3D CRS can be for example exported as + * WKT1_GDAL with 3 axes, whereas this is normally not allowed. */ WKTFormatter &WKTFormatter::setStrict(bool strictIn) noexcept { d->params_.strict_ = strictIn; @@ -263,6 +266,28 @@ bool WKTFormatter::isStrict() const noexcept { return d->params_.strict_; } // --------------------------------------------------------------------------- +/** \brief Set whether the formatter should export, in WKT1, a Geographic or + * Projected 3D CRS as a compound CRS whose vertical part represents an + * ellipsoidal height. + */ +WKTFormatter & +WKTFormatter::setAllowEllipsoidalHeightAsVerticalCRS(bool allow) noexcept { + d->params_.allowEllipsoidalHeightAsVerticalCRS_ = allow; + return *this; +} + +// --------------------------------------------------------------------------- + +/** \brief Return whether the formatter should export, in WKT1, a Geographic or + * Projected 3D CRS as a compound CRS whose vertical part represents an + * ellipsoidal height. + */ +bool WKTFormatter::isAllowedEllipsoidalHeightAsVerticalCRS() const noexcept { + return d->params_.allowEllipsoidalHeightAsVerticalCRS_; +} + +// --------------------------------------------------------------------------- + /** Returns the WKT string from the formatter. */ const std::string &WKTFormatter::toString() const { if (d->indentLevel_ > 0 || d->level_ > 0) { |
