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 ;
|
2019-04-07 17:22:41 +00:00
|
|
|
INSERT INTO phase_2_trace_troncons
|
|
|
|
SELECT
|
2019-05-04 08:25:26 +00:00
|
|
|
row_number() over() as uid,
|
|
|
|
-- infos redadeg
|
2019-04-07 17:22:41 +00:00
|
|
|
NULL AS secteur_id,
|
2019-05-04 08:25:26 +00:00
|
|
|
NULL AS km,
|
|
|
|
NULL AS km_reel,
|
|
|
|
NULL AS longueur,
|
2019-04-07 17:22:41 +00:00
|
|
|
-- 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
|
2019-04-07 17:22:41 +00:00
|
|
|
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
|
2019-04-07 17:22:41 +00:00
|
|
|
FROM phase_2_trace_pgr
|
2019-05-04 08:25:26 +00:00
|
|
|
--WHERE secteur_id = 8
|
|
|
|
GROUP BY secteur_id
|
2019-04-07 17:22:41 +00:00
|
|
|
-- ce tri est le plus important
|
2019-05-04 08:25:26 +00:00
|
|
|
ORDER BY secteur_id, path_seq ASC
|
|
|
|
) AS t
|
2019-04-07 17:22:41 +00:00
|
|
|
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 ;
|
2019-04-07 17:22:41 +00:00
|
|
|
|
|
|
|
-- 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
|
|
|
|