diff options
| -rw-r--r-- | data/sql/grid_alternatives.sql | 266 | ||||
| -rw-r--r-- | data/sql/ignf.sql | 118 | ||||
| -rw-r--r-- | data/sql/proj_db_table_defs.sql | 7 | ||||
| -rwxr-xr-x | scripts/build_db_create_ignf_from_xml.py | 4 | ||||
| -rw-r--r-- | src/iso19111/coordinateoperation.cpp | 38 | ||||
| -rw-r--r-- | test/cli/testprojinfo_out.dist | 2 |
6 files changed, 220 insertions, 215 deletions
diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql index 37a4d98a..d8fd0c77 100644 --- a/data/sql/grid_alternatives.sql +++ b/data/sql/grid_alternatives.sql @@ -282,8 +282,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('WW15MGH.GRD', 'egm96_15.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid', NULL, NULL, NULL, NULL); @@ -297,8 +297,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz', 'egm08_25.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-world', NULL, NULL, NULL, NULL); @@ -314,8 +314,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gr2000g.gri', 'gvr2000.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -329,8 +329,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggeoid16.gri', 'gvr2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -346,8 +346,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('dvr90.gtx', 'dvr90.gtx', -- no change. Just document the package 'GTX', - 'vgridshift', - 0, -- do not reverse here as grid_transformation_custom does reference from VerticalCRS height to Geographic height + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -362,8 +362,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('dnn.gtx', 'dnn.gtx', -- no change. Just document the package 'GTX', - 'vgridshift', - 0, -- do not reverse here as grid_transformation_custom does reference from VerticalCRS height to Geographic height + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -379,8 +379,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('fvr09.gtx', 'fvr09.gtx', -- no change. Just document the package 'GTX', - 'vgridshift', - 0, -- do not reverse here as grid_transformation_custom does reference from VerticalCRS height to Geographic height + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -396,8 +396,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('SWEN17_RH2000.gtx', 'SWEN17_RH2000.gtx', -- no change. Just document the package 'GTX', - 'vgridshift', - 0, -- do not reverse here as grid_transformation_custom does reference from VerticalCRS height to Geographic height + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -413,8 +413,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('OSGM15_Malin.gri', 'OSGM15_Malin.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -430,8 +430,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('OSGM15_Belfast.gri', 'OSGM15_Belfast.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -440,28 +440,28 @@ INSERT INTO grid_alternatives(original_grid_name, ---------------------------- INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g1999u01.bin', 'g1999u01.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g1999u01.bin', 'g1999u01.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g1999u02.bin', 'g1999u02.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g1999u02.bin', 'g1999u02.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g1999u03.bin', 'g1999u03.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g1999u03.bin', 'g1999u03.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g1999u04.bin', 'g1999u04.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g1999u04.bin', 'g1999u04.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g1999u05.bin', 'g1999u05.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g1999u05.bin', 'g1999u05.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g1999u06.bin', 'g1999u06.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g1999u06.bin', 'g1999u06.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g1999u07.bin', 'g1999u07.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g1999u07.bin', 'g1999u07.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g1999u08.bin', 'g1999u08.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g1999u08.bin', 'g1999u08.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); -- Not mapped: -- g1999a01.gtx to g1999a04.gtx : Alaska @@ -473,7 +473,7 @@ INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_form ---------------------------- INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('geoid03_conus.bin', 'geoid03_conus.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('geoid03_conus.bin', 'geoid03_conus.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); -- Not mapped: -- g2003a01.gtx to g2003a04.gtx : Alaska @@ -485,26 +485,26 @@ INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_form ---------------------------- INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('geoid06_ak.bin', 'geoid06_ak.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('geoid06_ak.bin', 'geoid06_ak.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); ---------------------------- -- US GEOID09 height models ---------------------------- INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('geoid09_ak.bin', 'geoid09_ak.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('geoid09_ak.bin', 'geoid09_ak.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('geoid09_conus.bin', 'geoid09_conus.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('geoid09_conus.bin', 'geoid09_conus.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g2009g01.bin', 'g2009g01.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g2009g01.bin', 'g2009g01.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g2009s01.bin', 'g2009s01.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g2009s01.bin', 'g2009s01.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g2009p01.bin', 'g2009p01.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g2009p01.bin', 'g2009p01.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); -- Not mapped: -- g2009h01.gtx : Hawaii @@ -524,8 +524,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('g2012bu0.bin', 'g2012bu0.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -540,8 +540,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('g2012ba0.bin', 'g2012ba0.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -556,8 +556,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('g2012bp0.bin', 'g2012bp0.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -572,8 +572,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('g2012bg0.bin', 'g2012bg0.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -588,8 +588,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('g2012bs0.bin', 'g2012bs0.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -598,10 +598,10 @@ INSERT INTO grid_alternatives(original_grid_name, ---------------------------- INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g2018u0.bin', 'g2018u0.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g2018u0.bin', 'g2018u0.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory) - VALUES ('g2018p0.bin', 'g2018p0.gtx', 'GTX', 'vgridshift', 1, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); + VALUES ('g2018p0.bin', 'g2018p0.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); ---------------------------- -- French vertical grids @@ -617,8 +617,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RAF09.mnt', 'RAF09.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -632,8 +632,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RAF18.tac', 'RAF18.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -647,8 +647,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RAC09.mnt', 'RAC09.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -662,8 +662,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggm00.txt', 'ggm00v2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -677,8 +677,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggg00.txt', 'ggg00v2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -692,8 +692,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggg00_mg.txt', 'ggg00_mgv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -707,8 +707,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggg00_sm.txt', 'ggg00_smv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -722,8 +722,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggg00_ls.txt', 'ggg00_lsv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -737,8 +737,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggg00_ld.txt', 'RALDW842016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -752,8 +752,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RALDW842016.mnt', 'RALDW842016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -767,8 +767,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggg00_sb.txt', 'ggg00_sbv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -782,8 +782,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_mart.txt', 'RAMART2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -797,8 +797,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RAMART2016.mnt', 'RAMART2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -812,8 +812,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_gtbt.txt', 'RAGTBT2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -827,8 +827,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RAGTBT2016.mnt', 'RAGTBT2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -842,8 +842,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_mg.txt', 'RAMG2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -857,8 +857,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RAMG2016.mnt', 'RAMG2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -872,8 +872,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_sm.txt', 'gg10_smv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -887,8 +887,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_smv2.mnt', 'gg10_smv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -902,8 +902,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_ls.txt', 'RALS2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -917,8 +917,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RALS2016.mnt', 'RALS2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -932,8 +932,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_ld.txt', 'RALD2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -947,8 +947,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RALD2016.mnt', 'RALD2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -962,8 +962,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_sb.txt', 'gg10_sbv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -977,8 +977,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('gg10_sbv2.mnt', 'gg10_sbv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -992,8 +992,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggguy00.txt', 'ggguy15.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -1007,8 +1007,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('ggr99.txt', 'RAR07_bl.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -1022,8 +1022,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('GGSPM06v1.mnt', 'ggspm06v1.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -1037,8 +1037,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('RASPM2018.mnt', 'RASPM2018.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -1146,8 +1146,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('AUSGeoid09_GDA94_V1.01_DOV_windows.gsb', -- source file contains undulation in first band, and deflection in 2nd and 3d band 'AUSGeoid09_V1.01.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-oceania', NULL, NULL, NULL, NULL); @@ -1161,8 +1161,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('AUSGeoid2020_windows_binary.gsb', -- source file contains undulation in first band, and deflection in 2nd and 3d band 'AUSGeoid2020_20180201.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-oceania', NULL, NULL, NULL, NULL); @@ -1176,8 +1176,8 @@ INSERT INTO grid_alternatives(original_grid_name, SELECT grid_name, 'AUSGeoid98.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-oceania', NULL, NULL, NULL, NULL FROM grid_transformation WHERE grid_name LIKE '%DAT.htm' AND name LIKE 'GDA94 to AHD height%'; @@ -1194,7 +1194,7 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('naptrans2008.gtx', 'naptrans2008.gtx', 'GTX', - 'vgridshift', + 'geoid_like', 0, NULL, -- package name 'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/naptrans2008.gtx', @@ -1692,8 +1692,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('HT2_0.byn', 'HT2_2010v70.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -1707,8 +1707,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('CGG2013i08a.byn', 'CGG2013ai08.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -1722,8 +1722,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('CGG2013n83a.byn', 'CGG2013an83.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -1737,8 +1737,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('CGG2013i83.byn', 'CGG2013i08.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -1752,8 +1752,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('CGG2013n83.byn', 'CGG2013n83.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL); @@ -1799,7 +1799,7 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('Icegeoid_ISN2004.gtx', 'Icegeoid_ISN2004.gtx', 'GTX', - 'vgridshift', + 'geoid_like', 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -1814,7 +1814,7 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('Icegeoid_ISN93.gtx', 'Icegeoid_ISN93.gtx', 'GTX', - 'vgridshift', + 'geoid_like', 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -1829,7 +1829,7 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('Icegeoid_ISN2016.gtx', 'Icegeoid_ISN2016.gtx', 'GTX', - 'vgridshift', + 'geoid_like', 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); @@ -2060,8 +2060,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('New_Zealand_Quasigeoid_2016.csv', 'nzgeoid2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-oceania', NULL, NULL, NULL, NULL); @@ -2075,8 +2075,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('nzgeoid2016.gtx', 'nzgeoid2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-oceania', NULL, NULL, NULL, NULL); @@ -2091,8 +2091,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('nzgeoid09.sid', 'nzgeoid2009.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-oceania', NULL, NULL, NULL, NULL); @@ -2106,7 +2106,7 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('nzgeoid2009.gtx', 'nzgeoid2009.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-oceania', NULL, NULL, NULL, NULL); diff --git a/data/sql/ignf.sql b/data/sql/ignf.sql index 05664787..c0ffbf50 100644 --- a/data/sql/ignf.sql +++ b/data/sql/ignf.sql @@ -1,4 +1,4 @@ ---- This file has been generated by scripts/build_db_create_ignf_from_xml.py from the https://geodesie.ign.fr/contenu/fichiers/IGNF.v3.1.0.xml definition file. DO NOT EDIT ! +--- This file has been generated by scripts/build_db_create_ignf_from_xml.py from the http://librairies.ign.fr/geoportail/resources/IGNF.xml definition file. DO NOT EDIT ! INSERT INTO "metadata" VALUES('IGNF.SOURCE', 'https://geodesie.ign.fr/contenu/fichiers/IGNF.v3.1.0.xml'); INSERT INTO "metadata" VALUES('IGNF.VERSION', '3.1.0'); @@ -2696,8 +2696,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Huahine.mnt', -- as referenced by the IGNF registry 'ggpf02-Huahine.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2710,8 +2710,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggg00v2.mnt', -- as referenced by the IGNF registry 'ggg00v2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2724,8 +2724,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf10-Tahiti.mnt', -- as referenced by the IGNF registry 'ggpf10-Tahiti.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2738,8 +2738,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Raiatea.mnt', -- as referenced by the IGNF registry 'ggpf02-Raiatea.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2752,8 +2752,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggg00_sbv2.mnt', -- as referenced by the IGNF registry 'ggg00_sbv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2766,8 +2766,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/gg10_smv2.mnt', -- as referenced by the IGNF registry 'gg10_smv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2780,8 +2780,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RAMG2016.mnt', -- as referenced by the IGNF registry 'RAMG2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2794,8 +2794,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggker08v2.mnt', -- as referenced by the IGNF registry 'ggker08v2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2808,8 +2808,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggspm06v1.mnt', -- as referenced by the IGNF registry 'ggspm06v1.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2822,8 +2822,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/gg10_sbv2.mnt', -- as referenced by the IGNF registry 'gg10_sbv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2836,8 +2836,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggguy15.mnt', -- as referenced by the IGNF registry 'ggguy15.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2850,8 +2850,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAF09.mnt', -- as referenced by the IGNF registry 'RAF09.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2864,8 +2864,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf08-Fakarava.mnt', -- as referenced by the IGNF registry 'ggpf08-Fakarava.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2878,8 +2878,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggm00v2.mnt', -- as referenced by the IGNF registry 'ggm00v2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2892,8 +2892,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf10-Moorea.mnt', -- as referenced by the IGNF registry 'ggpf10-Moorea.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2906,8 +2906,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Maupiti.mnt', -- as referenced by the IGNF registry 'ggpf02-Maupiti.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2920,8 +2920,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggg00_lsv2.mnt', -- as referenced by the IGNF registry 'ggg00_lsv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2934,8 +2934,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggm04v1.mnt', -- as referenced by the IGNF registry 'ggm04v1.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2948,8 +2948,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggg00_smv2.mnt', -- as referenced by the IGNF registry 'ggg00_smv2.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2962,8 +2962,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RALD2016.mnt', -- as referenced by the IGNF registry 'RALD2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2976,8 +2976,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RAR07_bl.gra', -- as referenced by the IGNF registry 'RAR07_bl.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -2990,8 +2990,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RALS2016.mnt', -- as referenced by the IGNF registry 'RALS2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -3004,8 +3004,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RALDW842016.mnt', -- as referenced by the IGNF registry 'RALDW842016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -3018,8 +3018,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Tahaa.mnt', -- as referenced by the IGNF registry 'ggpf02-Tahaa.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -3032,8 +3032,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RAGTBT2016.mnt', -- as referenced by the IGNF registry 'RAGTBT2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -3046,8 +3046,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAC09.mnt', -- as referenced by the IGNF registry 'RAC09.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -3060,8 +3060,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RAMART2016.mnt', -- as referenced by the IGNF registry 'RAMART2016.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -3074,8 +3074,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('https://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAF18.mnt', -- as referenced by the IGNF registry 'RAF18.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); INSERT INTO grid_alternatives(original_grid_name, @@ -3088,8 +3088,8 @@ INSERT INTO grid_alternatives(original_grid_name, VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Bora.mnt', -- as referenced by the IGNF registry 'ggpf02-Bora.gtx', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL); diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index 14e0c789..59cef3bc 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -1092,7 +1092,7 @@ CREATE TABLE grid_alternatives( original_grid_name TEXT NOT NULL PRIMARY KEY, -- original grid name (e.g. Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz). For LOS/LAS format, the .las files proj_grid_name TEXT NOT NULL, -- PROJ grid name (e.g egm08_25.gtx) proj_grid_format TEXT NOT NULL, -- one of 'CTable2', 'NTv1', 'NTv2', 'GTX' - proj_method TEXT NOT NULL, -- hgridshift or vgridshift + proj_method TEXT NOT NULL, -- hgridshift, vgridshift or geoid_like inverse_direction BOOLEAN NOT NULL CHECK (inverse_direction IN (0, 1)), -- whether the PROJ grid direction is reversed w.r.t to the authority one (TRUE in that case) package_name TEXT, -- package name that contains the file url TEXT, -- optional URL where to download the PROJ grid @@ -1102,9 +1102,10 @@ CREATE TABLE grid_alternatives( CONSTRAINT fk_grid_alternatives_grid_packages FOREIGN KEY (package_name) REFERENCES grid_packages(package_name), CONSTRAINT check_grid_alternatives_grid_fromat CHECK (proj_grid_format IN ('CTable2', 'NTv1', 'NTv2', 'GTX')), - CONSTRAINT check_grid_alternatives_proj_method CHECK (proj_method IN ('hgridshift', 'vgridshift')), + CONSTRAINT check_grid_alternatives_proj_method CHECK (proj_method IN ('hgridshift', 'vgridshift', 'geoid_like')), CONSTRAINT check_grid_alternatives_not_hgridshift CHECK (NOT(proj_method != 'hgridshift' AND proj_grid_format IN ('CTable2', 'NTv1', 'NTv2'))), - CONSTRAINT check_grid_alternatives_not_vgridshift CHECK (NOT(proj_method != 'vgridshift' AND proj_grid_format IN ('GTX'))), + CONSTRAINT check_grid_alternatives_not_vgridshift CHECK (NOT(proj_method = 'hgridshift' AND proj_grid_format IN ('GTX'))), + CONSTRAINT check_grid_alternatives_inverse_direction CHECK (NOT(proj_method = 'geoid_like' AND inverse_direction = 1)), CONSTRAINT check_grid_alternatives_package_name_url CHECK (NOT(package_name IS NOT NULL AND url IS NOT NULL)), CONSTRAINT check_grid_alternatives_direct_download_url CHECK (NOT(direct_download IS NULL AND url IS NOT NULL)), CONSTRAINT check_grid_alternatives_open_license_url CHECK (NOT(open_license IS NULL AND url IS NOT NULL)) diff --git a/scripts/build_db_create_ignf_from_xml.py b/scripts/build_db_create_ignf_from_xml.py index 7d679d39..f39f8d81 100755 --- a/scripts/build_db_create_ignf_from_xml.py +++ b/scripts/build_db_create_ignf_from_xml.py @@ -1096,8 +1096,8 @@ for grid in setVerticalGrids: VALUES ('%s', -- as referenced by the IGNF registry '%s', 'GTX', - 'vgridshift', - 1, + 'geoid_like', + 0, 'proj-datumgrid-europe', NULL, NULL, NULL, NULL);""" % (original_grid_name, proj_grid_name)) diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp index 6b89b5f3..a8c7c902 100644 --- a/src/iso19111/coordinateoperation.cpp +++ b/src/iso19111/coordinateoperation.cpp @@ -8495,6 +8495,7 @@ isGeographic3DToGravityRelatedHeight(const OperationMethodNNPtr &method, "1060", // Geographic3D to GravityRelatedHeight (CGG2013) "1072", // Geographic3D to GravityRelatedHeight (OSGM15-Ire) "1073", // Geographic3D to GravityRelatedHeight (IGN2009) + "1081", // Geographic3D to GravityRelatedHeight (BEV AT) "9661", // Geographic3D to GravityRelatedHeight (EGM) "9662", // Geographic3D to GravityRelatedHeight (Ausgeoid98) "9663", // Geographic3D to GravityRelatedHeight (OSGM-GB) @@ -8717,21 +8718,32 @@ TransformationNNPtr Transformation::substitutePROJAlternativeGridNames( if (databaseContext->lookForGridAlternative( filename, projFilename, projGridFormat, inverseDirection)) { - if (filename == projFilename && !inverseDirection) { + if (inverseDirection) { + throw util::UnsupportedOperationException( + "Inverse direction for " + "Geographic3DToGravityRelatedHeight not supported"); + } + + if (filename == projFilename) { return self; } auto parameters = std::vector<OperationParameterNNPtr>{ createOpParamNameEPSGCode( EPSG_CODE_PARAMETER_GEOID_CORRECTION_FILENAME)}; +#ifdef disabled_for_now if (inverseDirection) { - return createGravityRelatedHeightToGeographic3D( - createPropertiesForInverse( - self.as_nullable().get(), true, false), - targetCRS(), sourceCRS(), interpolationCRS(), - projFilename, coordinateOperationAccuracies()) + return create(createPropertiesForInverse( + self.as_nullable().get(), true, false), + targetCRS(), sourceCRS(), nullptr, + createSimilarPropertiesMethod(method()), + parameters, {ParameterValue::createFilename( + projFilename)}, + coordinateOperationAccuracies()) ->inverseAsTransformation(); - } else { + } else +#endif + { return create( createSimilarPropertiesTransformation(self), sourceCRS(), targetCRS(), nullptr, @@ -9383,16 +9395,8 @@ void Transformation::_exportToPROJString( fileParameter->type() == ParameterValue::Type::FILENAME) { auto filename = fileParameter->valueFile(); bool doInversion = isMethodInverseOf; - if ((method()->nameStr() == - "Geographic3D to GravityRelatedHeight (US .gtx)" || - method()->nameStr() == - "Geographic3D to GravityRelatedHeight (gtx)") && - ends_with(filename, ".gtx")) { - // gtx files must be applied in - // reverse order for "Geographic3D to GravityRelatedHeight" - // method - doInversion = !doInversion; - } + // The EPSG Geog3DToHeight is the reverse convention of PROJ ! + doInversion = !doInversion; if (doInversion) { formatter->startInversion(); } diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist index 03ce9046..e7a92915 100644 --- a/test/cli/testprojinfo_out.dist +++ b/test/cli/testprojinfo_out.dist @@ -978,7 +978,7 @@ Operation No. 2: INVERSE(EPSG):10000, Inverse of RGF93 to NGF IGN69 height (1), 0.5 m, France - mainland onshore PROJ string: -+proj=pipeline +step +inv +proj=vgridshift +grids=ggf97a.txt +multiplier=1 ++proj=vgridshift +grids=ggf97a.txt +multiplier=1 Testing EPSG:32631 --3d PROJ.4 string: |
