ar_redadeg/scripts/traitements_phase_2.2.sql

80 lines
2 KiB
MySQL
Raw Normal View History

2019-03-17 09:19:08 +00:00
/*
==========================================================================
2019-05-01 12:53:48 +00:00
phase 2 : création de différentes données à partir du tracé routé
2019-03-17 09:19:08 +00:00
==========================================================================
*/
2019-05-01 12:53:48 +00:00
-- on prend le tracé routé et on fait une version simple
-- 1 ligne par secteur
TRUNCATE TABLE phase_2_trace_secteur ;
2019-05-04 08:25:26 +00:00
WITH trace_ordered AS (
SELECT secteur_id, the_geom
FROM phase_2_trace_pgr
ORDER BY secteur_id, path_seq
)
2019-05-01 12:53:48 +00:00
INSERT INTO phase_2_trace_secteur
SELECT
secteur_id, '', '', 0, 0,
2019-05-04 08:25:26 +00:00
ST_CollectionExtract(ST_UNION(the_geom),2) AS the_geom
FROM trace_ordered
2019-05-01 12:53:48 +00:00
GROUP BY secteur_id
ORDER BY secteur_id ;
2019-03-17 18:07:55 +00:00
2019-05-01 12:53:48 +00:00
-- mise à jour des attributs
UPDATE phase_2_trace_secteur a
SET
nom_fr = b.nom_fr,
nom_br = b.nom_br,
longueur = TRUNC( ST_Length(the_geom)::numeric , 0),
longueur_km = TRUNC( ST_Length(the_geom)::numeric / 1000 , 1)
FROM secteur b WHERE a.secteur_id = b.id ;
2019-03-17 18:07:55 +00:00
2019-03-17 09:19:08 +00:00
2019-05-04 08:25:26 +00:00
/*
TRUNCATE phase_2_trace_troncons ;
INSERT INTO phase_2_trace_troncons
SELECT
2019-05-04 08:25:26 +00:00
row_number() over() as uid,
-- infos redadeg
NULL AS secteur_id,
2019-05-04 08:25:26 +00:00
NULL AS km,
NULL AS km_reel,
NULL AS longueur,
-- infos OSM
2019-05-04 08:25:26 +00:00
--t.osm_id, t.highway, t.type, t.oneway, t.ref, t.name_fr, t.name_br,
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
2019-05-04 08:25:26 +00:00
(
SELECT
secteur_id, path_seq,
osm_id, highway, "type", oneway, ref, name_fr, name_br,
ST_LineMerge(the_geom)::geometry(LineString,2154) AS the_geom,
ST_Length(the_geom) AS length
FROM phase_2_trace_pgr
2019-05-04 08:25:26 +00:00
--WHERE secteur_id = 8
GROUP BY secteur_id
-- ce tri est le plus important
2019-05-04 08:25:26 +00:00
ORDER BY secteur_id, path_seq ASC
) AS t
CROSS JOIN generate_series(0,10000) AS n
WHERE n*1000.00/length < 1
2019-05-04 08:25:26 +00:00
ORDER BY t.secteur_id, t.path_seq ;
-- mise à jour des attributs
UPDATE phase_2_trace_troncons
SET
longueur =
(CASE
WHEN TRUNC( ST_Length(the_geom)::numeric , 0) = 999 THEN 1000
ELSE TRUNC( ST_Length(the_geom)::numeric , 0)
END),
2019-05-04 08:25:26 +00:00
km = uid -- km redadeg ;
2019-05-01 12:53:48 +00:00
*/
2019-03-17 09:19:08 +00:00