diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-12-16 13:24:11 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-12-16 13:27:40 +0100 |
| commit | a68c146d7f3c1efb0f42b46c708a0a195e51a2ff (patch) | |
| tree | 864d402a26a9831f24c5a280ef760d45c9b57d72 /src/iso19111/coordinateoperation.cpp | |
| parent | 6125d3b5a488d6dbaa536d0bde9125a63c1dc91a (diff) | |
| download | PROJ-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.cpp | 4 |
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(); |
