diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-11-03 10:58:33 +0100 |
|---|---|---|
| committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2021-11-03 10:26:06 +0000 |
| commit | 4739adcc55a0a0cacd5691de1f9951561e08ac2b (patch) | |
| tree | 31a2d2c7d989a5f5d4454ecf4c1deda539fa4553 /src | |
| parent | 94ebc12ccee80042fb5789b34c179c40c92e9693 (diff) | |
| download | PROJ-4739adcc55a0a0cacd5691de1f9951561e08ac2b.tar.gz PROJ-4739adcc55a0a0cacd5691de1f9951561e08ac2b.zip | |
Merge pull request #2917 from rouault/fix_boundcrs_name
BoundCRS WKT import: fix setting of name
Diffstat (limited to 'src')
| -rw-r--r-- | src/iso19111/io.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 9ce642e7..5f2472a7 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -1262,7 +1262,8 @@ struct WKTParser::Private { bool removeInverseOf); PropertyMap &buildProperties(const WKTNodeNNPtr &node, - bool removeInverseOf = false); + bool removeInverseOf = false, + bool hasName = true); ObjectDomainPtr buildObjectDomain(const WKTNodeNNPtr &node); @@ -1577,7 +1578,8 @@ IdentifierPtr WKTParser::Private::buildId(const WKTNodeNNPtr &node, // --------------------------------------------------------------------------- PropertyMap &WKTParser::Private::buildProperties(const WKTNodeNNPtr &node, - bool removeInverseOf) { + bool removeInverseOf, + bool hasName) { if (propertyCount_ == MAX_PROPERTY_SIZE) { throw ParsingException("MAX_PROPERTY_SIZE reached"); @@ -1603,7 +1605,7 @@ PropertyMap &WKTParser::Private::buildProperties(const WKTNodeNNPtr &node, } } - if (!nodeChildren.empty()) { + if (hasName && !nodeChildren.empty()) { const auto &nodeName(nodeP->value()); auto name(stripQuotes(nodeChildren[0])); if (removeInverseOf && starts_with(name, "Inverse of ")) { @@ -4670,8 +4672,9 @@ BoundCRSNNPtr WKTParser::Private::buildBoundCRS(const WKTNodeNNPtr &node) { NN_NO_CHECK(targetCRS), nullptr, buildProperties(methodNode), parameters, values, std::vector<PositionalAccuracyNNPtr>()); - return BoundCRS::create(buildProperties(node), NN_NO_CHECK(sourceCRS), - NN_NO_CHECK(targetCRS), transformation); + return BoundCRS::create(buildProperties(node, false, false), + NN_NO_CHECK(sourceCRS), NN_NO_CHECK(targetCRS), + transformation); } // --------------------------------------------------------------------------- |
