aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/iso19111/coordinateoperation.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp
index 90266307..ed98832f 100644
--- a/src/iso19111/coordinateoperation.cpp
+++ b/src/iso19111/coordinateoperation.cpp
@@ -10748,8 +10748,13 @@ static CoordinateOperationNNPtr createHorizVerticalHorizPROJBased(
interpolationGeogCRS);
bool dummy = false;
- auto ops = std::vector<CoordinateOperationNNPtr>{
- opSrcCRSToGeogCRS, verticalTransform, opGeogCRStoDstCRS};
+ auto ops = opSrcCRSToGeogCRS->sourceCRS()->_isEquivalentTo(
+ opSrcCRSToGeogCRS->targetCRS().get())
+ ? std::vector<CoordinateOperationNNPtr>{verticalTransform,
+ opGeogCRStoDstCRS}
+ : std::vector<CoordinateOperationNNPtr>{opSrcCRSToGeogCRS,
+ verticalTransform,
+ opGeogCRStoDstCRS};
auto extent = getExtent(ops, true, dummy);
auto properties = util::PropertyMap();
properties.set(common::IdentifiedObject::NAME_KEY,