CC48 -> Lambert 93

This commit is contained in:
MaelReboux 2019-03-06 20:46:07 +01:00
parent fe74f7a97b
commit ce2501dd02
3 changed files with 51 additions and 50 deletions

View file

@ -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 -- car même si les tables original sont déclarées en 3857
-- en fait les géoémtries sont en 4326 -- en fait les géoémtries sont en 4326
-- donc les calculs de longueur sont faux -- 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 -- la table secteur gère les grands découpage de gestion
DROP TABLE secteur CASCADE ; DROP TABLE IF EXISTS secteur CASCADE ;
CREATE TABLE secteur CREATE TABLE secteur
( (
id integer, id integer,
@ -32,35 +32,35 @@ 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 phase_1_trace_3948 CASCADE ; DROP TABLE IF EXISTS phase_1_trace CASCADE ;
CREATE TABLE phase_1_trace_3948 CREATE TABLE phase_1_trace
( (
ogc_fid integer, ogc_fid integer,
name text, name text,
secteur int, secteur_id int,
ordre int, ordre int,
longueur numeric, longueur numeric,
the_geom geometry(LineString,3948), the_geom geometry(LineString,2154),
CONSTRAINT phase_1_trace_3948_pkey PRIMARY KEY (ogc_fid), CONSTRAINT phase_1_trace_pkey PRIMARY KEY (ogc_fid),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text), 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 ; DROP TABLE IF EXISTS phase_1_pk_vip CASCADE ;
CREATE TABLE phase_1_pk_vip_3948 CREATE TABLE phase_1_pk_vip
( (
ogc_fid integer, ogc_fid integer,
name text, name text,
description text, description text,
the_geom geometry(Point,3948), the_geom geometry(Point,2154),
CONSTRAINT phase_1_pk_vip_3948_pkey PRIMARY KEY (ogc_fid), CONSTRAINT phase_1_pk_vip_pkey PRIMARY KEY (ogc_fid),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text), 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 -- 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 CREATE TABLE phase_1_trace_4326
( (
ogc_fid integer, ogc_fid integer,
@ -77,47 +77,47 @@ CREATE TABLE phase_1_trace_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 phase_1_trace_troncons_3948 CASCADE ; DROP TABLE IF EXISTS phase_1_trace_troncons CASCADE ;
CREATE TABLE phase_1_trace_troncons_3948 CREATE TABLE phase_1_trace_troncons
( (
uid bigint, uid bigint,
secteur int, secteur_id int,
ordre bigint, ordre bigint,
km bigint, km bigint,
km_reel bigint, km_reel bigint,
longueur integer, longueur integer,
the_geom geometry(LineString,3948), the_geom geometry(LineString,2154),
CONSTRAINT phase_1_trace_troncons_3948_pkey PRIMARY KEY (uid), CONSTRAINT phase_1_trace_troncons_pkey PRIMARY KEY (uid),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text), 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_trace_4326 OWNER to redadeg;
ALTER TABLE phase_1_pk_vip_3948 OWNER to redadeg; ALTER TABLE phase_1_pk_vip OWNER to redadeg;
ALTER TABLE phase_1_trace_troncons_3948 OWNER to redadeg; ALTER TABLE phase_1_trace_troncons OWNER to redadeg;
-- table des PK auto en fin de tronçon -- table des PK auto en fin de tronçon
/*DROP TABLE phase_1_pk_auto_3948 ; /*DROP TABLE phase_1_pk_auto ;
CREATE TABLE phase_1_pk_auto_3948 CREATE TABLE phase_1_pk_auto
( (
uid bigint, uid bigint,
secteur character varying(25), secteur character varying(25),
km bigint, km bigint,
km_reel bigint, km_reel bigint,
the_geom geometry(Point,3948), the_geom geometry(Point,2154),
CONSTRAINT phase_1_pk_auto_3948_pkey PRIMARY KEY (uid), CONSTRAINT phase_1_pk_auto_pkey PRIMARY KEY (uid),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text), 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 -- vue des PK auto en fin de tronçon
DROP VIEW IF EXISTS phase_1_pk_auto_3948 ; DROP VIEW IF EXISTS phase_1_pk_auto ;
CREATE VIEW phase_1_pk_auto_3948 AS CREATE VIEW phase_1_pk_auto AS
SELECT SELECT
uid, secteur, ordre, km, km_reel, uid, secteur, ordre, km, km_reel,
ST_Line_Interpolate_Point(the_geom, 1)::geometry(Point, 3948) AS the_geom ST_Line_Interpolate_Point(the_geom, 1)::geometry(Point, 2154) AS the_geom
FROM phase_1_trace_troncons_3948 FROM phase_1_trace_troncons
ORDER BY secteur 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
@ -126,10 +126,10 @@ CREATE VIEW phase_1_pk_auto_4326 AS
SELECT SELECT
uid, secteur, ordre, km, km_reel, uid, secteur, ordre, km, km_reel,
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
ORDER BY secteur ASC, ordre ASC, km ASC ; 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; 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, SUM(longueur) AS longueur_m,
TRUNC( SUM(longueur)/1000::numeric , 3) AS longueur_km, TRUNC( SUM(longueur)/1000::numeric , 3) AS longueur_km,
ROUND( SUM(longueur)/1000::numeric ) AS longueur_km_arrondi 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 GROUP BY secteur_id, secteur_nom_br, secteur_nom_fr
ORDER BY secteur_id ; ORDER BY secteur_id ;

View file

@ -25,7 +25,7 @@ ogr2ogr -f "PostgreSQL" PG:"host=localhost user=redadeg password=redadeg dbname=
# on crée les tables en 3948 # 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 # et on exporte vers Geojson

View file

@ -1,7 +1,7 @@
TRUNCATE phase_1_trace_3948 ; TRUNCATE phase_1_trace ;
INSERT INTO phase_1_trace_3948 INSERT INTO phase_1_trace
SELECT SELECT
ogc_fid, ogc_fid,
-- name AS secteur_nom, -- name AS secteur_nom,
@ -9,13 +9,13 @@ INSERT INTO phase_1_trace_3948
name, name,
ordre::int, ordre::int,
0 AS longueur, 0 AS longueur,
ST_Transform(the_geom,3948) AS the_geom ST_Transform(the_geom,2154) AS the_geom
FROM phase_1_trace_3857 FROM phase_1_trace_3857
WHERE ST_LENGTH(the_geom) > 0 WHERE ST_LENGTH(the_geom) > 0
ORDER BY secteur_id ASC, ordre ASC ; ORDER BY secteur_id ASC, ordre ASC ;
-- mise à jour de la longueur 1 fois la géométrie passée en CC48 -- 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) ; SET longueur = TRUNC( ST_Length(the_geom)::numeric / 1000 , 2) ;
@ -29,20 +29,20 @@ INSERT INTO phase_1_trace_4326
ordre::int, ordre::int,
longueur, longueur,
ST_Transform(the_geom,4326) AS the_geom ST_Transform(the_geom,4326) AS the_geom
FROM phase_1_trace_3948 FROM phase_1_trace
ORDER BY secteur_id ASC, ordre ASC ; ORDER BY secteur_id ASC, ordre ASC ;
TRUNCATE phase_1_pk_vip_3948 ; TRUNCATE phase_1_pk_vip ;
INSERT INTO phase_1_pk_vip_3948 INSERT INTO phase_1_pk_vip
SELECT ogc_fid, name, '', ST_Transform(the_geom,3948) AS the_geom SELECT ogc_fid, name, '', ST_Transform(the_geom,2154) AS the_geom
FROM phase_1_pk_vip_3857 ; FROM phase_1_pk_vip_3857 ;
TRUNCATE phase_1_trace_troncons_3948 ; TRUNCATE phase_1_trace_troncons ;
INSERT INTO phase_1_trace_troncons_3948 INSERT INTO phase_1_trace_troncons
SELECT SELECT
row_number() over() as uid, row_number() over() as uid,
secteur_id, secteur_id,
@ -62,9 +62,9 @@ INSERT INTO phase_1_trace_troncons_3948
secteur_id, secteur_id,
section_nom, section_nom,
ordre, 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 ST_Length(the_geom) As length
FROM phase_1_trace_3948 FROM phase_1_trace
-- ce tri est le plus important -- ce tri est le plus important
ORDER BY secteur_id ASC, ordre ASC ORDER BY secteur_id ASC, ordre ASC
) AS t ) AS t
@ -73,7 +73,7 @@ INSERT INTO phase_1_trace_troncons_3948
ORDER BY t.secteur_id ASC, t.ordre ASC ; ORDER BY t.secteur_id ASC, t.ordre ASC ;
-- mise à jour des attributs -- mise à jour des attributs
UPDATE phase_1_trace_troncons_3948 UPDATE phase_1_trace_troncons
SET SET
longueur = longueur =
(CASE (CASE
@ -81,4 +81,5 @@ SET
ELSE TRUNC( ST_Length(the_geom)::numeric , 0) ELSE TRUNC( ST_Length(the_geom)::numeric , 0)
END), END),
km = uid -- km redadeg km = uid -- km redadeg
;