diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-02-26 16:23:39 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-02-26 16:23:39 +0100 |
| commit | 250e4a222bb267b33d9404ae31a1d09a0e4e16d3 (patch) | |
| tree | 0f485943a46dd50e68496b95152961de574afb73 | |
| parent | 1f8541d6f43f7fde949772e0a2174e317542b985 (diff) | |
| download | PROJ-250e4a222bb267b33d9404ae31a1d09a0e4e16d3.tar.gz PROJ-250e4a222bb267b33d9404ae31a1d09a0e4e16d3.zip | |
Database: register 4 height Austrian grids from https://github.com/OSGeo/PROJ-data/pull/13 + handle 'Vertical Offset by Grid Interpolation (BEV AT)' method
| -rw-r--r-- | data/sql/grid_alternatives.sql | 4 | ||||
| -rw-r--r-- | src/iso19111/coordinateoperation.cpp | 2 | ||||
| -rw-r--r-- | src/proj_constants.h | 3 | ||||
| -rw-r--r-- | test/unit/test_operation.cpp | 15 |
4 files changed, 24 insertions, 0 deletions
diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index e545c7bf..c7e07050 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -20,6 +20,10 @@ VALUES ('SeTa2016.gsb','de_lgvl_saarland_SeTa2016.tif','SeTa2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_lgvl_saarland_SeTa2016.tif',1,1,NULL), ('NTv2_SN.gsb','de_geosn_NTv2_SN.tif','NTv2_SN.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_geosn_NTv2_SN.tif',1,1,NULL), ('AT_GIS_GRID.gsb','at_bev_AT_GIS_GRID.tif','AT_GIS_GRID.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/at_bev_AT_GIS_GRID.tif',1,1,NULL), +('GV_HoehenGrid_V1.csv','at_bev_GV_Hoehengrid_V1.tif',NULL,'GTiff','vgridshift',0,NULL,'https://cdn.proj.org/at_bev_GV_Hoehengrid_V1.tif',1,1,NULL), +('GEOID_GRS80_Oesterreich.csv','at_bev_GEOID_GRS80_Oesterreich.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/at_bev_GEOID_GRS80_Oesterreich.tif',1,1,NULL), +('GEOID_BESSEL_Oesterreich.csv','at_bev_GEOID_BESSEL_Oesterreich.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/at_bev_GEOID_BESSEL_Oesterreich.tif',1,1,NULL), +('GV_Hoehengrid_plus_Geoid_V3.csv','at_bev_GV_Hoehengrid_plus_Geoid_V2.tif',NULL,'GTiff','geoid_like',0,NULL,'https://cdn.proj.org/at_bev_GV_Hoehengrid_plus_Geoid_V2.tif',1,1,NULL), ('nzgd2kgrid0005.gsb','nz_linz_nzgd2kgrid0005.tif','nzgd2kgrid0005.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nzgd2kgrid0005.tif',1,1,NULL), ('OSTN15_NTv2_OSGBtoETRS.gsb','uk_os_OSTN15_NTv2_OSGBtoETRS.tif','OSTN15_NTv2_OSGBtoETRS.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/uk_os_OSTN15_NTv2_OSGBtoETRS.tif',1,1,NULL), -- Continental USA VERTCON: NGVD (19)29 height to NAVD (19)88 height diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp index c97763e4..16325423 100644 --- a/src/iso19111/coordinateoperation.cpp +++ b/src/iso19111/coordinateoperation.cpp @@ -8867,6 +8867,7 @@ TransformationNNPtr Transformation::substitutePROJAlternativeGridNames( if (methodEPSGCode == EPSG_CODE_METHOD_VERTCON || methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_NZLVD || + methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_BEV_AT || methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_GTX) { auto fileParameter = parameterValue(EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE, @@ -9619,6 +9620,7 @@ void Transformation::_exportToPROJString( } if (methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_NZLVD || + methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_BEV_AT || methodEPSGCode == EPSG_CODE_METHOD_VERTICALGRID_GTX) { auto fileParameter = parameterValue(EPSG_NAME_PARAMETER_VERTICAL_OFFSET_FILE, diff --git a/src/proj_constants.h b/src/proj_constants.h index 5b95cda6..89104462 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -536,6 +536,9 @@ #define EPSG_CODE_METHOD_VERTICALGRID_NZLVD 1071 #define EPSG_NAME_METHOD_VERTICALGRID_NZLVD "Vertical Offset by Grid Interpolation (NZLVD)" +#define EPSG_CODE_METHOD_VERTICALGRID_BEV_AT 1080 +#define EPSG_NAME_METHOD_VERTICALGRID_BEV_AT "Vertical Offset by Grid Interpolation (BEV AT)" + #define EPSG_CODE_METHOD_VERTICALGRID_GTX 1084 #define EPSG_NAME_METHOD_VERTICALGRID_GTX "Vertical Offset by Grid Interpolation (gtx)" diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp index fb611f68..84415efb 100644 --- a/test/unit/test_operation.cpp +++ b/test/unit/test_operation.cpp @@ -6755,6 +6755,21 @@ TEST(operation, transformation_NZLVD_to_PROJ_string) { // --------------------------------------------------------------------------- +TEST(operation, transformation_BEV_AT_to_PROJ_string) { + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + auto op = factory->createCoordinateOperation("9275", false); + EXPECT_EQ(op->exportToPROJString( + PROJStringFormatter::create( + PROJStringFormatter::Convention::PROJ_5, dbContext) + .get()), + "+proj=vgridshift +grids=at_bev_GV_Hoehengrid_V1.tif " + "+multiplier=1"); +} + + +// --------------------------------------------------------------------------- + TEST(operation, transformation_longitude_rotation_to_PROJ_string) { auto src = GeographicCRS::create( |
