rajout d'une table trace 4326 pour export propre vers umap

This commit is contained in:
MaelReboux 2019-01-19 10:46:30 +01:00
parent b2b2d19049
commit 2e339a7f29
3 changed files with 54 additions and 45 deletions

View file

@ -7,7 +7,7 @@
-- la table secteur gère les grands découpage de gestion -- la table secteur gère les grands découpage de gestion
DROP TABLE IF EXISTS secteur CASCADE ; DROP TABLE secteur CASCADE ;
CREATE TABLE secteur CREATE TABLE secteur
( (
id integer, id integer,
@ -32,12 +32,12 @@ INSERT INTO secteur VALUES (10,'Sant-Brieg -> Gwengamp','Saint-Brieuc -> Gwengam
INSERT INTO secteur VALUES (999,'test','test'); INSERT INTO secteur VALUES (999,'test','test');
DROP TABLE IF EXISTS phase_1_trace_3948 CASCADE ; DROP TABLE phase_1_trace_3948 CASCADE ;
CREATE TABLE phase_1_trace_3948 CREATE TABLE phase_1_trace_3948
( (
ogc_fid integer, ogc_fid integer,
secteur_id int, name text,
section_nom text, secteur int,
ordre int, ordre int,
longueur numeric, longueur numeric,
the_geom geometry(LineString,3948), the_geom geometry(LineString,3948),
@ -46,7 +46,7 @@ CREATE TABLE phase_1_trace_3948
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 3948) CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 3948)
); );
DROP TABLE IF EXISTS phase_1_pk_vip_3948 CASCADE ; DROP TABLE phase_1_pk_vip_3948 CASCADE ;
CREATE TABLE phase_1_pk_vip_3948 CREATE TABLE phase_1_pk_vip_3948
( (
ogc_fid integer, ogc_fid integer,
@ -59,14 +59,29 @@ CREATE TABLE phase_1_pk_vip_3948
); );
-- on crée aussi une version correcte en 4326 pour export vers umap
DROP TABLE phase_1_trace_4326 ;
CREATE TABLE phase_1_trace_4326
(
ogc_fid integer,
name text, -- = section_nom
secteur_id int,
ordre int,
longueur numeric,
the_geom geometry(LineString,4326),
CONSTRAINT phase_1_trace_4326_pkey PRIMARY KEY (ogc_fid),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text),
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4326)
);
-- table des tronçons créés à partir des longs tracés -- table des tronçons créés à partir des longs tracés
DROP TABLE IF EXISTS phase_1_trace_troncons_3948 CASCADE ; DROP TABLE phase_1_trace_troncons_3948 CASCADE ;
CREATE TABLE phase_1_trace_troncons_3948 CREATE TABLE phase_1_trace_troncons_3948
( (
uid bigint, uid bigint,
secteur_id int, secteur int,
section_nom text,
ordre bigint, ordre bigint,
km bigint, km bigint,
km_reel bigint, km_reel bigint,
@ -95,43 +110,24 @@ CREATE TABLE phase_1_pk_auto_3948
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 3948) CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 3948)
);*/ );*/
-- vue plus complète des tronçons
DROP VIEW IF EXISTS v_phase_1_trace_troncons_3948 CASCADE ;
CREATE VIEW v_phase_1_trace_troncons_3948 AS
SELECT
a.uid,
b.nom_br AS secteur_nom_br, b.nom_fr AS secteur_nom_fr, b.id AS secteur_id,
a.section_nom,
a.ordre, a.km, a.km_reel, a.longueur, a.the_geom
FROM phase_1_trace_troncons_3948 a JOIN secteur b ON a.secteur_id = b.id
ORDER BY secteur_id ASC, ordre ASC, km ASC ;
-- vue des PK auto en fin de tronçon -- vue des PK auto en fin de tronçon
DROP VIEW IF EXISTS phase_1_pk_auto_3948 CASCADE ; DROP VIEW IF EXISTS phase_1_pk_auto_3948 ;
CREATE VIEW phase_1_pk_auto_3948 AS CREATE VIEW phase_1_pk_auto_3948 AS
SELECT SELECT
a.uid, uid, secteur, ordre, km, km_reel,
b.nom_br AS secteur_nom_br, b.nom_fr AS secteur_nom_fr, b.id AS secteur_id,
a.section_nom,
a.ordre, a.km, a.km_reel, a.longueur,
ST_Line_Interpolate_Point(the_geom, 1)::geometry(Point, 3948) AS the_geom ST_Line_Interpolate_Point(the_geom, 1)::geometry(Point, 3948) AS the_geom
FROM phase_1_trace_troncons_3948 a JOIN secteur b ON a.secteur_id = b.id FROM phase_1_trace_troncons_3948
ORDER BY secteur_id ASC, ordre ASC, km ASC ; ORDER BY secteur ASC, ordre ASC, km ASC ;
-- la même mais en 4326 pour export -- la même mais en 4326 pour export
DROP VIEW IF EXISTS phase_1_pk_auto_4326 CASCADE ; DROP VIEW IF EXISTS phase_1_pk_auto_4326 ;
CREATE VIEW phase_1_pk_auto_4326 AS CREATE VIEW phase_1_pk_auto_4326 AS
SELECT SELECT
uid, uid, secteur, ordre, km, km_reel,
secteur_nom_br, secteur_nom_fr, secteur_id,
section_nom,
ordre, km, km_reel, longueur,
ST_Transform(the_geom,4326)::geometry(Point, 4326) AS the_geom ST_Transform(the_geom,4326)::geometry(Point, 4326) AS the_geom
FROM phase_1_pk_auto_3948 ; FROM phase_1_pk_auto_3948
ORDER BY secteur ASC, ordre ASC, km ASC ;
ALTER TABLE v_phase_1_trace_troncons_3948 OWNER to redadeg;
ALTER TABLE phase_1_pk_auto_3948 OWNER to redadeg; ALTER TABLE phase_1_pk_auto_3948 OWNER to redadeg;
ALTER TABLE phase_1_pk_auto_4326 OWNER to redadeg; ALTER TABLE phase_1_pk_auto_4326 OWNER to redadeg;

View file

@ -31,6 +31,8 @@ psql -U redadeg -d redadeg < load_tables_3948.sql
# et on exporte vers Geojson # et on exporte vers Geojson
rm phase_1_pk_auto.geojson rm phase_1_pk_auto.geojson
ogr2ogr -f "GeoJSON" phase_1_pk_auto.geojson PG:"host=localhost user=redadeg password=redadeg dbname=redadeg" phase_1_pk_auto_4326 ogr2ogr -f "GeoJSON" phase_1_pk_auto.geojson PG:"host=localhost user=redadeg password=redadeg dbname=redadeg" phase_1_pk_auto_4326
rm phase_1_trace_4326.geojson
ogr2ogr -f "GeoJSON" phase_1_trace_4326.geojson PG:"host=localhost user=redadeg password=redadeg dbname=redadeg" phase_1_trace_4326
# les fichiers sont ensuite tout de suite visible dans umap # les fichiers sont ensuite tout de suite visible dans umap
# exports supplémentaires # exports supplémentaires

View file

@ -3,9 +3,8 @@
TRUNCATE phase_1_trace_3948 ; TRUNCATE phase_1_trace_3948 ;
INSERT INTO phase_1_trace_3948 INSERT INTO phase_1_trace_3948
SELECT SELECT
ogc_fid, ogc_fid, name,
secteur::int, -- secteur_id secteur::int,
name::text, -- section_nom
ordre::int, ordre::int,
0, 0,
ST_Transform(the_geom,3948) AS the_geom ST_Transform(the_geom,3948) AS the_geom
@ -18,6 +17,20 @@ UPDATE phase_1_trace_3948
SET longueur = TRUNC( ST_Length(the_geom)::numeric / 1000 , 2) ; SET longueur = TRUNC( ST_Length(the_geom)::numeric / 1000 , 2) ;
-- on remplit la table trace 4326 pour exporter vers umap
TRUNCATE phase_1_trace_4326 ;
INSERT INTO phase_1_trace_4326
SELECT
ogc_fid,
section_nom::text, -- name
secteur_id::int,
ordre::int,
longueur,
ST_Transform(the_geom,4326) AS the_geom
FROM phase_1_trace_3948
ORDER BY secteur_id ASC, ordre ASC ;
TRUNCATE phase_1_pk_vip_3948 ; TRUNCATE phase_1_pk_vip_3948 ;
INSERT INTO phase_1_pk_vip_3948 INSERT INTO phase_1_pk_vip_3948
@ -30,8 +43,7 @@ TRUNCATE phase_1_trace_troncons_3948 ;
INSERT INTO phase_1_trace_troncons_3948 INSERT INTO phase_1_trace_troncons_3948
SELECT SELECT
row_number() over() as uid, row_number() over() as uid,
secteur_id, secteur,
section_nom,
ordre, ordre,
NULL AS km, NULL AS km,
NULL AS km_reel, NULL AS km_reel,
@ -44,18 +56,17 @@ INSERT INTO phase_1_trace_troncons_3948
FROM FROM
(SELECT (SELECT
ogc_fid, ogc_fid,
secteur_id, secteur,
section_nom,
ordre, ordre,
ST_LineMerge(the_geom)::geometry(LineString,3948) AS the_geom, ST_LineMerge(the_geom)::geometry(LineString,3948) AS the_geom,
ST_Length(the_geom) As length ST_Length(the_geom) As length
FROM phase_1_trace_3948 FROM phase_1_trace_3948
-- ce tri est le plus important -- ce tri est le plus important
ORDER BY secteur_id ASC, ordre ASC ORDER BY secteur ASC, ordre ASC
) AS t ) AS t
CROSS JOIN generate_series(0,10000) AS n CROSS JOIN generate_series(0,10000) AS n
WHERE n*1000.00/length < 1 WHERE n*1000.00/length < 1
ORDER BY t.secteur_id ASC, t.ordre ASC ; ORDER BY t.secteur ASC, t.ordre ASC ;
-- mise à jour des attributs -- mise à jour des attributs
UPDATE phase_1_trace_troncons_3948 UPDATE phase_1_trace_troncons_3948