diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2020-01-08 19:42:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-08 19:42:22 +0100 |
| commit | 2d76bcffdc4d154860512c904c877ad086ca6b6d (patch) | |
| tree | fb7a89bad15edbd55aab154532911933af591dc8 /src/iso19111/c_api.cpp | |
| parent | 6cd3a80bf5d015ec9c6dc601720a418c17ffa340 (diff) | |
| parent | 6426bcbd3605bf8cd6ae5c7869931fa89a26d641 (diff) | |
| download | PROJ-2d76bcffdc4d154860512c904c877ad086ca6b6d.tar.gz PROJ-2d76bcffdc4d154860512c904c877ad086ca6b6d.zip | |
Merge pull request #1827 from rouault/improve_createObjectsFromName
Improvements regarding name aliases (refs #1823)
Diffstat (limited to 'src/iso19111/c_api.cpp')
| -rw-r--r-- | src/iso19111/c_api.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 5a5e97f6..7d4f5eba 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -2760,16 +2760,19 @@ static GeodeticReferenceFrameNNPtr createGeodeticReferenceFrame( if (metadata::Identifier::isEquivalentName( datumName.c_str(), refDatum->nameStr().c_str())) { datumName = refDatum->nameStr(); - } - } else { - std::string outTableName; - std::string authNameFromAlias; - std::string codeFromAlias; - auto officialName = authFactory->getOfficialNameFromAlias( - datumName, "geodetic_datum", std::string(), true, - outTableName, authNameFromAlias, codeFromAlias); - if (!officialName.empty()) { - datumName = officialName; + } else if (refDatum->identifiers().size() == 1) { + const auto &id = refDatum->identifiers()[0]; + const auto aliases = + authFactory->databaseContext()->getAliases( + *id->codeSpace(), id->code(), refDatum->nameStr(), + "geodetic_datum", std::string()); + for (const auto &alias : aliases) { + if (metadata::Identifier::isEquivalentName( + datumName.c_str(), alias.c_str())) { + datumName = refDatum->nameStr(); + break; + } + } } } } |
