aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-11-30 19:41:50 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-12-02 15:57:40 +0100
commitdc55b17d0c7ae180bb73add3581fac7e8f959c11 (patch)
treebcdf64378044d02480c7fad70bd4dfef9470a1a0 /src
parent89bfd5d12e06685be8206d5f5d88d77846bb10e2 (diff)
downloadPROJ-dc55b17d0c7ae180bb73add3581fac7e8f959c11.tar.gz
PROJ-dc55b17d0c7ae180bb73add3581fac7e8f959c11.zip
Database: register the BWTA2017.gsb grid (DHDN->ETRS89 for Baden-Wurtemberg)
Relates to https://github.com/OSGeo/proj-datumgrid/pull/65 , https://github.com/OSGeo/proj-datumgrid/issues/22 As EPSG has no entry for it, we create a grid_transformation, as well as a dedicated area of use based on the extent of the grid, under the PROJ authority. With the hope to be able to remove it once EPSG has an entry...
Diffstat (limited to 'src')
-rw-r--r--src/iso19111/coordinateoperation.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp
index 27f11100..c295aff2 100644
--- a/src/iso19111/coordinateoperation.cpp
+++ b/src/iso19111/coordinateoperation.cpp
@@ -11580,11 +11580,13 @@ CoordinateOperationFactory::Private::findOpsInRegistryDirect(
const auto authorities(getCandidateAuthorities(
authFactory, srcAuthName, targetAuthName));
+ std::vector<CoordinateOperationNNPtr> res;
for (const auto &authority : authorities) {
+ const auto authName =
+ authority == "any" ? std::string() : authority;
const auto tmpAuthFactory = io::AuthorityFactory::create(
- authFactory->databaseContext(),
- authority == "any" ? std::string() : authority);
- auto res =
+ authFactory->databaseContext(), authName);
+ auto resTmp =
tmpAuthFactory->createFromCoordinateReferenceSystemCodes(
srcAuthName, srcCode, targetAuthName, targetCode,
context.context->getUsePROJAlternativeGridNames(),
@@ -11593,6 +11595,10 @@ CoordinateOperationFactory::Private::findOpsInRegistryDirect(
DISCARD_OPERATION_IF_MISSING_GRID,
context.context->getDiscardSuperseded(), true, false,
context.extent1, context.extent2);
+ res.insert(res.end(), resTmp.begin(), resTmp.end());
+ if (authName == "PROJ") {
+ continue;
+ }
if (!res.empty()) {
resNonEmptyBeforeFiltering = true;
auto resFiltered =