Skip to content

Commit 7454e07

Browse files
committed
remove dependency to GeoNature for local SRID
Use Find_SRID('ref_geo', 'l_areas', 'geom') instead of 'local_srid' in gn_commons.t_parameters
1 parent 97e548c commit 7454e07

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/ref_geo/migrations/data/ref_geo.sql

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ SET search_path = ref_geo, pg_catalog, public;
2020
CREATE OR REPLACE FUNCTION ref_geo.fct_trg_calculate_geom_local()
2121
RETURNS trigger AS
2222
-- trigger qui reprojete une geom a partir d'une geom source fournie et l'insert dans le NEW
23-
-- en prenant le parametre local_srid de la table t_parameters
23+
-- en prenant le srid local (srid de la colonne ref_geo.l_areas.geom)
2424
-- 1er param: nom de la colonne source
2525
-- 2eme param: nom de la colonne a reprojeter
2626
-- utiliser pour calculer les geom_local à partir des geom_4326
@@ -35,7 +35,7 @@ BEGIN
3535
-- si c'est un insert ou que c'est un UPDATE ET que le geom_4326 a été modifié
3636
IF (TG_OP = 'INSERT' OR (TG_OP = 'UPDATE' AND NOT public.ST_EQUALS(hstore(OLD)-> the4326geomcol, hstore(NEW)-> the4326geomcol) )) THEN
3737
--récupérer le srid local
38-
SELECT INTO thelocalsrid parameter_value::int FROM gn_commons.t_parameters WHERE parameter_name = 'local_srid';
38+
SELECT Find_SRID('ref_geo', 'l_areas', 'geom') INTO thelocalsrid;
3939
EXECUTE FORMAT ('SELECT public.ST_TRANSFORM($1.%I, $2)',the4326geomcol) INTO thegeomlocalvalue USING NEW, thelocalsrid;
4040
-- insertion dans le NEW de la geom transformée
4141
NEW := NEW#= hstore(thelocalgeomcol, thegeomlocalvalue);
@@ -65,7 +65,7 @@ DECLARE
6565
thesrid int;
6666
is_vectorized int;
6767
BEGIN
68-
SELECT gn_commons.get_default_parameter('local_srid', NULL) INTO thesrid;
68+
SELECT Find_SRID('ref_geo', 'l_areas', 'geom') INTO thesrid;
6969
SELECT COALESCE(gid, NULL) FROM ref_geo.dem_vector LIMIT 1 INTO is_vectorized;
7070

7171
IF is_vectorized IS NULL THEN
@@ -107,7 +107,7 @@ $BODY$
107107
DECLARE
108108
isrid int;
109109
BEGIN
110-
SELECT gn_commons.get_default_parameter('local_srid', NULL) INTO isrid;
110+
SELECT Find_SRID('ref_geo', 'l_areas', 'geom') INTO isrid;
111111
RETURN QUERY
112112
WITH d as (
113113
SELECT public.st_transform(myGeom,isrid) geom_trans
@@ -150,7 +150,7 @@ BEGIN
150150
-- si c'est un insert et que l'altitude min ou max est null -> on calcule
151151
IF (TG_OP = 'INSERT' and (new.altitude_min IS NULL or new.altitude_max IS NULL)) THEN
152152
--récupérer le srid local
153-
SELECT INTO thelocalsrid parameter_value::int FROM gn_commons.t_parameters WHERE parameter_name = 'local_srid';
153+
SELECT Find_SRID('ref_geo', 'l_areas', 'geom') INTO thelocalsrid;
154154
--Calcul de l'altitude
155155

156156
SELECT (ref_geo.fct_get_altitude_intersection(st_transform(hstore(NEW)-> the4326geomcol,thelocalsrid))).* INTO NEW.altitude_min, NEW.altitude_max;
@@ -160,7 +160,7 @@ BEGIN
160160
-- OU si les altitudes ont changé, si oui = elles ont déjà été calculés - on ne relance pas le calcul
161161
IF (new.altitude_min is null or new.altitude_max is null) OR (NOT OLD.altitude_min = NEW.altitude_min or NOT OLD.altitude_max = OLD.altitude_max) THEN
162162
--récupérer le srid local
163-
SELECT INTO thelocalsrid parameter_value::int FROM gn_commons.t_parameters WHERE parameter_name = 'local_srid';
163+
SELECT Find_SRID('ref_geo', 'l_areas', 'geom') INTO thelocalsrid;
164164
--Calcul de l'altitude
165165
SELECT (ref_geo.fct_get_altitude_intersection(st_transform(hstore(NEW)-> the4326geomcol,thelocalsrid))).* INTO NEW.altitude_min, NEW.altitude_max;
166166
end IF;
@@ -359,7 +359,7 @@ CREATE TRIGGER tri_calculate_geojson
359359
-- -- en executant des st_transform
360360
-- -- à executer AFTER INSERT
361361
-- BEGIN
362-
-- SELECT INTO thelocalsrid parameter_value::int FROM gn_commons.t_parameters WHERE parameter_name = 'local_srid';
362+
-- SELECT Find_SRID('ref_geo', 'l_areas', 'geom') INTO thelocalsrid;
363363
-- IF (TG_OP = 'INSERT') THEN
364364
-- -- si geom_4326 n'est pas null on remplit geom_local
365365
-- --INSERT INTO pr_occtax.debug (d) VALUES (hstore(new)->'geom_4326'::text);

0 commit comments

Comments
 (0)