aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-11-03 10:58:33 +0100
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2021-11-03 10:26:06 +0000
commit4739adcc55a0a0cacd5691de1f9951561e08ac2b (patch)
tree31a2d2c7d989a5f5d4454ecf4c1deda539fa4553 /src
parent94ebc12ccee80042fb5789b34c179c40c92e9693 (diff)
downloadPROJ-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.cpp13
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);
}
// ---------------------------------------------------------------------------