aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/coordinateoperation.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-12-16 13:24:11 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-12-16 13:27:40 +0100
commita68c146d7f3c1efb0f42b46c708a0a195e51a2ff (patch)
tree864d402a26a9831f24c5a280ef760d45c9b57d72 /src/iso19111/coordinateoperation.cpp
parent6125d3b5a488d6dbaa536d0bde9125a63c1dc91a (diff)
downloadPROJ-a68c146d7f3c1efb0f42b46c708a0a195e51a2ff.tar.gz
PROJ-a68c146d7f3c1efb0f42b46c708a0a195e51a2ff.zip
BoundCRS::identify(): improvements to discard CRS that aren't relevant (fixes #1801)
Fix for ``` projinfo --identify "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +towgs84=198,881,317,0,0,0,0 +units=m +no_defs +type=crs" ``` to only return BoundCRS of EPSG:3148: 70 % Previously it also returned EPSG:23948 and EPSG:24048 whose projected CRS-only parts where likely matches, but those 2 CRSs don't have a +towgs84=198,881,317,0,0,0,0, so discard them.
Diffstat (limited to 'src/iso19111/coordinateoperation.cpp')
-rw-r--r--src/iso19111/coordinateoperation.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp
index 0469cae1..2c3e38ac 100644
--- a/src/iso19111/coordinateoperation.cpp
+++ b/src/iso19111/coordinateoperation.cpp
@@ -10189,7 +10189,9 @@ bool ConcatenatedOperation::_isEquivalentTo(
const util::IComparable *other,
util::IComparable::Criterion criterion) const {
auto otherCO = dynamic_cast<const ConcatenatedOperation *>(other);
- if (otherCO == nullptr || !ObjectUsage::_isEquivalentTo(other, criterion)) {
+ if (otherCO == nullptr ||
+ (criterion == util::IComparable::Criterion::STRICT &&
+ !ObjectUsage::_isEquivalentTo(other, criterion))) {
return false;
}
const auto &steps = operations();