diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-11-02 18:48:20 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-11-02 22:28:54 +0100 |
| commit | 7492e65bfebadfcd44d3e2e4916a9d19e4bc6ae2 (patch) | |
| tree | e93fe704abf9c95f4b3ef19f42e65bfd8f2a999a /data | |
| parent | 31fd3de9c2b2f823c01b3c2dbadddf4a7101fa16 (diff) | |
| download | PROJ-7492e65bfebadfcd44d3e2e4916a9d19e4bc6ae2.tar.gz PROJ-7492e65bfebadfcd44d3e2e4916a9d19e4bc6ae2.zip | |
Add a geoid_model name in database, use GEOIDMODEL for transformations, add a proj_create_vertical_crs_ex()
Diffstat (limited to 'data')
| -rw-r--r-- | data/sql/commit.sql | 16 | ||||
| -rw-r--r-- | data/sql/customizations.sql | 17 | ||||
| -rw-r--r-- | data/sql/proj_db_table_defs.sql | 17 |
3 files changed, 50 insertions, 0 deletions
diff --git a/data/sql/commit.sql b/data/sql/commit.sql index eb49828a..a708df0f 100644 --- a/data/sql/commit.sql +++ b/data/sql/commit.sql @@ -29,6 +29,22 @@ FOR EACH ROW BEGIN WHERE (SELECT 1 FROM object_view LIMIT 1) = 0; SELECT RAISE(ABORT, 'corrupt definition of authority_list') WHERE (SELECT 1 FROM authority_list LIMIT 1) = 0; + + -- check geoid_model table + SELECT RAISE(ABORT, 'missing GEOID99 in geoid_model') + WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID99'); + SELECT RAISE(ABORT, 'missing GEOID03 in geoid_model') + WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID03'); + SELECT RAISE(ABORT, 'missing GEOID06 in geoid_model') + WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID06'); + SELECT RAISE(ABORT, 'missing GEOID09 in geoid_model') + WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID09'); + SELECT RAISE(ABORT, 'missing GEOID12A in geoid_model') + WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID12A'); + SELECT RAISE(ABORT, 'missing GEOID12B in geoid_model') + WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID12B'); + SELECT RAISE(ABORT, 'missing GEOID18 in geoid_model') + WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID18'); END; INSERT INTO dummy DEFAULT VALUES; DROP TRIGGER final_checks; diff --git a/data/sql/customizations.sql b/data/sql/customizations.sql index 99891dc1..b0804ebd 100644 --- a/data/sql/customizations.sql +++ b/data/sql/customizations.sql @@ -95,3 +95,20 @@ INSERT INTO "helmert_transformation" VALUES('PROJ','WGS84_TO_WGS84_TRANSIT','WGS DELETE FROM supersession WHERE superseded_table_name = 'grid_transformation' AND superseded_auth_name = 'EPSG' AND superseded_code = '6326'; DELETE FROM supersession WHERE superseded_table_name = 'grid_transformation' AND superseded_auth_name = 'EPSG' AND superseded_code = '7646'; DELETE FROM supersession WHERE superseded_table_name = 'grid_transformation' AND superseded_auth_name = 'EPSG' AND superseded_code = '7647'; + +---- Geoid models ----- + +INSERT INTO "geoid_model" SELECT 'GEOID99', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g1999%' AND deprecated = 0; + +INSERT INTO "geoid_model" SELECT 'GEOID03', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'geoid03%' AND deprecated = 0; + +INSERT INTO "geoid_model" SELECT 'GEOID06', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'geoid06%' AND deprecated = 0; + +INSERT INTO "geoid_model" SELECT 'GEOID09', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'geoid09%' AND deprecated = 0; + +-- Geoid12A and Geoid12B are identical +INSERT INTO "geoid_model" SELECT 'GEOID12A', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g2012b%' AND deprecated = 0; + +INSERT INTO "geoid_model" SELECT 'GEOID12B', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g2012b%' AND deprecated = 0; + +INSERT INTO "geoid_model" SELECT 'GEOID18', auth_name, code FROM grid_transformation WHERE auth_name = 'EPSG' AND grid_name LIKE 'g2018%' AND deprecated = 0; diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index 8a02acf4..a97e75a8 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -1365,6 +1365,23 @@ FOR EACH ROW BEGIN END; + +CREATE TABLE geoid_model( + name TEXT NOT NULL, + operation_auth_name TEXT NOT NULL, + operation_code TEXT NOT NULL, + CONSTRAINT pk_geoid_model PRIMARY KEY (name, operation_auth_name, operation_code) + -- CONSTRATINT fk_geoid_model_operation FOREIGN KEY (operation_auth_name, operation_code) REFERENCES coordinate_operation(auth_name, code) +); + +CREATE TRIGGER geoid_model_insert_trigger +BEFORE INSERT ON geoid_model +FOR EACH ROW BEGIN + SELECT RAISE(ABORT, 'insert on geoid_model violates constraint: (operation_auth_name, operation_code) must already exist in coordinate_operation_with_conversion_view') + WHERE NOT EXISTS (SELECT 1 FROM coordinate_operation_with_conversion_view covwv WHERE covwv.auth_name = NEW.operation_auth_name AND covwv.code = NEW.operation_code); +END; + + CREATE TABLE alias_name( table_name TEXT NOT NULL CHECK (table_name IN ( 'unit_of_measure', 'celestial_body', 'ellipsoid', |
