aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-10-23 14:17:13 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-10-23 14:17:13 +0200
commite6a992b59985e51e2d205fe56c1abecc4a10ffd0 (patch)
tree4e5b7e604f544129c816781d81f279283f34621d
parent03bede92da21c5cc4fb58925f19a105c58cd5775 (diff)
downloadPROJ-e6a992b59985e51e2d205fe56c1abecc4a10ffd0.tar.gz
PROJ-e6a992b59985e51e2d205fe56c1abecc4a10ffd0.zip
AuthorityFactory::createCoordinateOperation(): correctly compute accuracy of concatenated operation when there is a conversion step
-rw-r--r--src/iso19111/factory.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp
index 211eb586..8d9742d5 100644
--- a/src/iso19111/factory.cpp
+++ b/src/iso19111/factory.cpp
@@ -3556,6 +3556,12 @@ operation::CoordinateOperationNNPtr AuthorityFactory::createCoordinateOperation(
} else {
totalAcc += acc;
}
+ } else if (dynamic_cast<const operation::Conversion *>(
+ op.get())) {
+ // A conversion is perfectly accurate.
+ if (totalAcc < 0) {
+ totalAcc = 0;
+ }
} else {
totalAcc = -1;
break;