ar_redadeg/scripts/load_tables_3948.sql
2019-01-12 13:49:22 +01:00

66 lines
1.6 KiB
SQL

TRUNCATE phase_1_trace_3948 ;
INSERT INTO phase_1_trace_3948
SELECT
ogc_fid, name,
secteur::int,
ordre::int,
0,
ST_Transform(the_geom,3948) AS the_geom
FROM phase_1_trace_3857
WHERE ST_LENGTH(the_geom) > 0
ORDER BY secteur ASC, ordre ASC ;
-- mise à jour de la longueur 1 fois la géométrie passée en CC48
UPDATE phase_1_trace_3948
SET longueur = TRUNC( ST_Length(the_geom)::numeric / 1000 , 2) ;
TRUNCATE phase_1_pk_vip_3948 ;
INSERT INTO phase_1_pk_vip_3948
SELECT ogc_fid, name, '', ST_Transform(the_geom,3948) AS the_geom
FROM phase_1_pk_vip_3857 ;
TRUNCATE phase_1_trace_troncons_3948 ;
INSERT INTO phase_1_trace_troncons_3948
SELECT
row_number() over() as uid,
secteur,
NULL AS km,
NULL AS km_reel,
NULL AS longueur,
ST_LineSubstring(the_geom, 1000.00*n/length,
CASE
WHEN 1000.00*(n+1) < length THEN 1000.00*(n+1)/length
ELSE 1
END) AS the_geom
FROM
(SELECT
ogc_fid,
secteur,
ordre,
ST_LineMerge(the_geom)::geometry(LineString,3948) AS the_geom,
ST_Length(the_geom) As length
FROM phase_1_trace_3948
-- ce tri est le plus important
ORDER BY secteur ASC, ordre ASC
) AS t
CROSS JOIN generate_series(0,10000) AS n
WHERE n*1000.00/length < 1
ORDER BY t.secteur ASC, t.ordre ASC ;
-- mise à jour des attributs
UPDATE phase_1_trace_troncons_3948
SET
longueur =
(CASE
WHEN TRUNC( ST_Length(the_geom)::numeric , 0) = 939 THEN 940
ELSE TRUNC( ST_Length(the_geom)::numeric , 0)
END),
km = uid -- km redadeg