aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/operation/singleoperation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/iso19111/operation/singleoperation.cpp')
-rw-r--r--src/iso19111/operation/singleoperation.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp
index 2f60828e..4dadfa40 100644
--- a/src/iso19111/operation/singleoperation.cpp
+++ b/src/iso19111/operation/singleoperation.cpp
@@ -2118,15 +2118,18 @@ bool SingleOperation::exportToPROJStringGeneric(
}
if (methodEPSGCode == EPSG_CODE_METHOD_CHANGE_VERTICAL_UNIT) {
- double convFactor = parameterValueNumericAsSI(
+ const double convFactor = parameterValueNumericAsSI(
EPSG_CODE_PARAMETER_UNIT_CONVERSION_SCALAR);
- auto uom = common::UnitOfMeasure(std::string(), convFactor,
- common::UnitOfMeasure::Type::LINEAR)
- .exportToPROJString();
- auto reverse_uom =
- common::UnitOfMeasure(std::string(), 1.0 / convFactor,
+ const auto uom =
+ common::UnitOfMeasure(std::string(), convFactor,
common::UnitOfMeasure::Type::LINEAR)
.exportToPROJString();
+ const auto reverse_uom =
+ convFactor == 0.0
+ ? std::string()
+ : common::UnitOfMeasure(std::string(), 1.0 / convFactor,
+ common::UnitOfMeasure::Type::LINEAR)
+ .exportToPROJString();
if (uom == "m") {
// do nothing
} else if (!uom.empty()) {