aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/operation/coordinateoperationfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/iso19111/operation/coordinateoperationfactory.cpp')
-rw-r--r--src/iso19111/operation/coordinateoperationfactory.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp
index 4832c7b8..4bd68b1d 100644
--- a/src/iso19111/operation/coordinateoperationfactory.cpp
+++ b/src/iso19111/operation/coordinateoperationfactory.cpp
@@ -1856,14 +1856,14 @@ createBallparkGeographicOffset(const crs::CRSNNPtr &sourceCRS,
accuracies.emplace_back(metadata::PositionalAccuracy::create("0"));
}
- if (dynamic_cast<const crs::SingleCRS *>(sourceCRS.get())
- ->coordinateSystem()
- ->axisList()
- .size() == 3 ||
- dynamic_cast<const crs::SingleCRS *>(targetCRS.get())
- ->coordinateSystem()
- ->axisList()
- .size() == 3) {
+ const auto singleSourceCRS =
+ dynamic_cast<const crs::SingleCRS *>(sourceCRS.get());
+ const auto singleTargetCRS =
+ dynamic_cast<const crs::SingleCRS *>(targetCRS.get());
+ if ((singleSourceCRS &&
+ singleSourceCRS->coordinateSystem()->axisList().size() == 3) ||
+ (singleTargetCRS &&
+ singleTargetCRS->coordinateSystem()->axisList().size() == 3)) {
return Transformation::createGeographic3DOffsets(
map, sourceCRS, targetCRS, angle0, angle0, common::Length(0),
accuracies);