diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2019-12-09 11:11:38 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-09 11:11:38 +0100 |
| commit | 9b66a948fe6e408b76d641fe96833616d6d6926f (patch) | |
| tree | 4902d61a143abbc82ac373963cc6e8b339da8630 /src/iso19111/factory.cpp | |
| parent | 9750c044740692f757bfd7c6760f69a8683c330a (diff) | |
| parent | 5cc1095970127f8df5c4f636b1ce782829510fa0 (diff) | |
| download | PROJ-9b66a948fe6e408b76d641fe96833616d6d6926f.tar.gz PROJ-9b66a948fe6e408b76d641fe96833616d6d6926f.zip | |
Merge pull request #1780 from rouault/fix_1779
CRS identification: use case insensitive comparison for authority name (fixes #1779)
Diffstat (limited to 'src/iso19111/factory.cpp')
| -rw-r--r-- | src/iso19111/factory.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 57850303..0ef07337 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -1433,9 +1433,17 @@ AuthorityFactory::AuthorityFactory(const DatabaseContextNNPtr &context, AuthorityFactoryNNPtr AuthorityFactory::create(const DatabaseContextNNPtr &context, const std::string &authorityName) { - - auto factory = AuthorityFactory::nn_make_shared<AuthorityFactory>( - context, authorityName); + const auto getFactory = [&context, &authorityName]() { + for (const auto &knownName : {"EPSG", "ESRI", "PROJ"}) { + if (ci_equal(authorityName, knownName)) { + return AuthorityFactory::nn_make_shared<AuthorityFactory>( + context, knownName); + } + } + return AuthorityFactory::nn_make_shared<AuthorityFactory>( + context, authorityName); + }; + auto factory = getFactory(); factory->d->setThis(factory); return factory; } |
