From 5d173d8de9a6f3281abf5d67be0810b34a2ffa69 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Thu, 1 Aug 2024 15:35:52 +0200 Subject: [PATCH] process properly EPSG_CODE_METHOD_VERTICALGRID_GTG with code 1129 --- src/iso19111/operation/singleoperation.cpp | 1 + src/proj_constants.h | 4 ++++ test/unit/test_factory.cpp | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 4778966c79..fd075ee709 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -2269,6 +2269,7 @@ static bool isRegularVerticalGridMethod(int methodEPSGCode, return methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_NZLVD || methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_BEV_AT || methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_GTX || + methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_GTG || methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_PL_TXT; } diff --git a/src/proj_constants.h b/src/proj_constants.h index 3092acda36..7ed53817fc 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -656,6 +656,10 @@ #define EPSG_NAME_METHOD_VERTICALGRID_GTX \ "Vertical Offset by Grid Interpolation (gtx)" +#define EPSG_CODE_METHOD_VERTICALGRID_GTG 1129 +#define EPSG_NAME_METHOD_VERTICALGRID_GTG \ + "Vertical Offset by Grid Interpolation (gtg)" + #define EPSG_CODE_METHOD_VERTICALGRID_PL_TXT 1101 #define EPSG_NAME_METHOD_VERTICALGRID_PL_TXT \ "Vertical Offset by Grid Interpolation (PL txt)" diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 5f3b4138d7..da6b10a6c6 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -1208,6 +1208,15 @@ TEST(factory, AuthorityFactory_affine_parametric_transform) { // --------------------------------------------------------------------------- +TEST(factory, AuthorityFactory_10566_issue_4212) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto op = factory->createCoordinateOperation("10566", true); + EXPECT_EQ(op->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=vgridshift +grids=dk_sdfi_gllmsl_2022.tif +multiplier=1"); +} + +// --------------------------------------------------------------------------- + TEST(factory, AuthorityFactory_createCoordinateOperation_concatenated_operation) { auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG");