diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-10-05 18:14:53 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-10-05 18:14:53 +0200 |
| commit | a227423cda40ae791fb9fdf3dff22dfa6b01ad0e (patch) | |
| tree | 32d4c0ab9186cedecea42ed8464b60837e1be1c1 /src/iso19111/coordinateoperation.cpp | |
| parent | 390d1ee10119afe9e1f95f4812fbcf3bae9e388a (diff) | |
| download | PROJ-a227423cda40ae791fb9fdf3dff22dfa6b01ad0e.tar.gz PROJ-a227423cda40ae791fb9fdf3dff22dfa6b01ad0e.zip | |
proj_crs_create_bound_crs_to_WGS84(): make it work on verticalCRS/compoundCRS such as EPSG:4326+5773 and EPSG:4326+3855
Diffstat (limited to 'src/iso19111/coordinateoperation.cpp')
| -rw-r--r-- | src/iso19111/coordinateoperation.cpp | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp index 6593d3e9..6fcf4d30 100644 --- a/src/iso19111/coordinateoperation.cpp +++ b/src/iso19111/coordinateoperation.cpp @@ -8702,15 +8702,6 @@ _getHeightToGeographic3DFilename(const Transformation *op, bool allowInverse) { // --------------------------------------------------------------------------- //! @cond Doxygen_Suppress -const std::string &Transformation::getHeightToGeographic3DFilename() const { - - return _getHeightToGeographic3DFilename(this, false); -} -//! @endcond - -// --------------------------------------------------------------------------- - -//! @cond Doxygen_Suppress static bool isGeographic3DToGravityRelatedHeight(const OperationMethodNNPtr &method, bool allowInverse) { @@ -8765,6 +8756,27 @@ isGeographic3DToGravityRelatedHeight(const OperationMethodNNPtr &method, // --------------------------------------------------------------------------- //! @cond Doxygen_Suppress +const std::string &Transformation::getHeightToGeographic3DFilename() const { + + const std::string &ret = _getHeightToGeographic3DFilename(this, false); + if (!ret.empty()) + return ret; + if (isGeographic3DToGravityRelatedHeight(method(), false)) { + const auto &fileParameter = + parameterValue(EPSG_NAME_PARAMETER_GEOID_CORRECTION_FILENAME, + EPSG_CODE_PARAMETER_GEOID_CORRECTION_FILENAME); + if (fileParameter && + fileParameter->type() == ParameterValue::Type::FILENAME) { + return fileParameter->valueFile(); + } + } + return nullString; +} +//! @endcond + +// --------------------------------------------------------------------------- + +//! @cond Doxygen_Suppress static util::PropertyMap createSimilarPropertiesMethod(common::IdentifiedObjectNNPtr obj) { util::PropertyMap map; |
