diff --git a/scripts/create_tables.sql b/scripts/create_tables.sql index 5043cbd..1e9adad 100644 --- a/scripts/create_tables.sql +++ b/scripts/create_tables.sql @@ -1,13 +1,13 @@ --- on est obligé de créer des tables en 3948 +-- on est obligé de créer des tables en Lambert 93 (EPSG:2154) (ou une CC conforme) -- car même si les tables original sont déclarées en 3857 -- en fait les géoémtries sont en 4326 -- donc les calculs de longueur sont faux --- au moins en créant une table en dur en 3948 on est sûr des longueurs +-- au moins en créant une table en dur en Lambert 93 / 2154 on est sûr des longueurs -- la table secteur gère les grands découpage de gestion -DROP TABLE secteur CASCADE ; +DROP TABLE IF EXISTS secteur CASCADE ; CREATE TABLE secteur ( id integer, @@ -32,35 +32,35 @@ INSERT INTO secteur VALUES (10,'Sant-Brieg -> Gwengamp','Saint-Brieuc -> Gwengam INSERT INTO secteur VALUES (999,'test','test'); -DROP TABLE phase_1_trace_3948 CASCADE ; -CREATE TABLE phase_1_trace_3948 +DROP TABLE IF EXISTS phase_1_trace CASCADE ; +CREATE TABLE phase_1_trace ( ogc_fid integer, name text, - secteur int, + secteur_id int, ordre int, longueur numeric, - the_geom geometry(LineString,3948), - CONSTRAINT phase_1_trace_3948_pkey PRIMARY KEY (ogc_fid), + the_geom geometry(LineString,2154), + CONSTRAINT phase_1_trace_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) = 3948) + CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 2154) ); -DROP TABLE phase_1_pk_vip_3948 CASCADE ; -CREATE TABLE phase_1_pk_vip_3948 +DROP TABLE IF EXISTS phase_1_pk_vip CASCADE ; +CREATE TABLE phase_1_pk_vip ( ogc_fid integer, name text, description text, - the_geom geometry(Point,3948), - CONSTRAINT phase_1_pk_vip_3948_pkey PRIMARY KEY (ogc_fid), + the_geom geometry(Point,2154), + CONSTRAINT phase_1_pk_vip_pkey PRIMARY KEY (ogc_fid), CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text), - CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 3948) + CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 2154) ); -- on crée aussi une version correcte en 4326 pour export vers umap -DROP TABLE phase_1_trace_4326 ; +DROP TABLE IF EXISTS phase_1_trace_4326 ; CREATE TABLE phase_1_trace_4326 ( ogc_fid integer, @@ -77,47 +77,47 @@ CREATE TABLE phase_1_trace_4326 -- table des tronçons créés à partir des longs tracés -DROP TABLE phase_1_trace_troncons_3948 CASCADE ; -CREATE TABLE phase_1_trace_troncons_3948 +DROP TABLE IF EXISTS phase_1_trace_troncons CASCADE ; +CREATE TABLE phase_1_trace_troncons ( uid bigint, - secteur int, + secteur_id int, ordre bigint, km bigint, km_reel bigint, longueur integer, - the_geom geometry(LineString,3948), - CONSTRAINT phase_1_trace_troncons_3948_pkey PRIMARY KEY (uid), + the_geom geometry(LineString,2154), + CONSTRAINT phase_1_trace_troncons_pkey PRIMARY KEY (uid), CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text), - CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 3948) + CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 2154) ); -ALTER TABLE phase_1_trace_3948 OWNER to redadeg; +ALTER TABLE phase_1_trace OWNER to redadeg; ALTER TABLE phase_1_trace_4326 OWNER to redadeg; -ALTER TABLE phase_1_pk_vip_3948 OWNER to redadeg; -ALTER TABLE phase_1_trace_troncons_3948 OWNER to redadeg; +ALTER TABLE phase_1_pk_vip OWNER to redadeg; +ALTER TABLE phase_1_trace_troncons OWNER to redadeg; -- table des PK auto en fin de tronçon -/*DROP TABLE phase_1_pk_auto_3948 ; -CREATE TABLE phase_1_pk_auto_3948 +/*DROP TABLE phase_1_pk_auto ; +CREATE TABLE phase_1_pk_auto ( uid bigint, secteur character varying(25), km bigint, km_reel bigint, - the_geom geometry(Point,3948), - CONSTRAINT phase_1_pk_auto_3948_pkey PRIMARY KEY (uid), + the_geom geometry(Point,2154), + CONSTRAINT phase_1_pk_auto_pkey PRIMARY KEY (uid), CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text), - CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 3948) + CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 2154) );*/ -- vue des PK auto en fin de tronçon -DROP VIEW IF EXISTS phase_1_pk_auto_3948 ; -CREATE VIEW phase_1_pk_auto_3948 AS +DROP VIEW IF EXISTS phase_1_pk_auto ; +CREATE VIEW phase_1_pk_auto AS SELECT uid, secteur, ordre, km, km_reel, - ST_Line_Interpolate_Point(the_geom, 1)::geometry(Point, 3948) AS the_geom - FROM phase_1_trace_troncons_3948 + ST_Line_Interpolate_Point(the_geom, 1)::geometry(Point, 2154) AS the_geom + FROM phase_1_trace_troncons ORDER BY secteur ASC, ordre ASC, km ASC ; -- la même mais en 4326 pour export @@ -126,10 +126,10 @@ CREATE VIEW phase_1_pk_auto_4326 AS SELECT uid, secteur, ordre, km, km_reel, ST_Transform(the_geom,4326)::geometry(Point, 4326) AS the_geom - FROM phase_1_pk_auto_3948 + FROM phase_1_pk_auto ORDER BY secteur ASC, ordre ASC, km ASC ; -ALTER TABLE phase_1_pk_auto_3948 OWNER to redadeg; +ALTER TABLE phase_1_pk_auto OWNER to redadeg; ALTER TABLE phase_1_pk_auto_4326 OWNER to redadeg; @@ -141,7 +141,7 @@ CREATE VIEW tdb_secteur_longueur AS SUM(longueur) AS longueur_m, TRUNC( SUM(longueur)/1000::numeric , 3) AS longueur_km, ROUND( SUM(longueur)/1000::numeric ) AS longueur_km_arrondi - FROM v_phase_1_trace_troncons_3948 + FROM v_phase_1_trace_troncons GROUP BY secteur_id, secteur_nom_br, secteur_nom_fr ORDER BY secteur_id ; diff --git a/scripts/traitements.sh b/scripts/traitements.sh index c293bd1..b7ea293 100755 --- a/scripts/traitements.sh +++ b/scripts/traitements.sh @@ -25,7 +25,7 @@ ogr2ogr -f "PostgreSQL" PG:"host=localhost user=redadeg password=redadeg dbname= # on crée les tables en 3948 -psql -U redadeg -d redadeg < load_tables_3948.sql +psql -U redadeg -d redadeg < traitements.sql # et on exporte vers Geojson diff --git a/scripts/traitements.sql b/scripts/traitements.sql index c9afe86..8a5f6b9 100644 --- a/scripts/traitements.sql +++ b/scripts/traitements.sql @@ -1,7 +1,7 @@ -TRUNCATE phase_1_trace_3948 ; -INSERT INTO phase_1_trace_3948 +TRUNCATE phase_1_trace ; +INSERT INTO phase_1_trace SELECT ogc_fid, -- name AS secteur_nom, @@ -9,13 +9,13 @@ INSERT INTO phase_1_trace_3948 name, ordre::int, 0 AS longueur, - ST_Transform(the_geom,3948) AS the_geom + ST_Transform(the_geom,2154) AS the_geom FROM phase_1_trace_3857 WHERE ST_LENGTH(the_geom) > 0 ORDER BY secteur_id ASC, ordre ASC ; -- mise à jour de la longueur 1 fois la géométrie passée en CC48 -UPDATE phase_1_trace_3948 +UPDATE phase_1_trace SET longueur = TRUNC( ST_Length(the_geom)::numeric / 1000 , 2) ; @@ -29,20 +29,20 @@ INSERT INTO phase_1_trace_4326 ordre::int, longueur, ST_Transform(the_geom,4326) AS the_geom - FROM phase_1_trace_3948 + FROM phase_1_trace ORDER BY secteur_id ASC, ordre ASC ; -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 +TRUNCATE phase_1_pk_vip ; +INSERT INTO phase_1_pk_vip + SELECT ogc_fid, name, '', ST_Transform(the_geom,2154) AS the_geom FROM phase_1_pk_vip_3857 ; -TRUNCATE phase_1_trace_troncons_3948 ; -INSERT INTO phase_1_trace_troncons_3948 +TRUNCATE phase_1_trace_troncons ; +INSERT INTO phase_1_trace_troncons SELECT row_number() over() as uid, secteur_id, @@ -62,9 +62,9 @@ INSERT INTO phase_1_trace_troncons_3948 secteur_id, section_nom, ordre, - ST_LineMerge(the_geom)::geometry(LineString,3948) AS the_geom, + ST_LineMerge(the_geom)::geometry(LineString,2154) AS the_geom, ST_Length(the_geom) As length - FROM phase_1_trace_3948 + FROM phase_1_trace -- ce tri est le plus important ORDER BY secteur_id ASC, ordre ASC ) AS t @@ -73,7 +73,7 @@ INSERT INTO phase_1_trace_troncons_3948 ORDER BY t.secteur_id ASC, t.ordre ASC ; -- mise à jour des attributs -UPDATE phase_1_trace_troncons_3948 +UPDATE phase_1_trace_troncons SET longueur = (CASE @@ -81,4 +81,5 @@ SET ELSE TRUNC( ST_Length(the_geom)::numeric , 0) END), km = uid -- km redadeg +;