@@ -20,7 +20,7 @@ SET search_path = ref_geo, pg_catalog, public;
2020CREATE 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
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 ;
6767BEGIN
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$
107107DECLARE
108108 isrid int ;
109109BEGIN
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