rajout du secteur_id
This commit is contained in:
parent
d6e3810713
commit
3e0c9c8494
|
@ -174,6 +174,7 @@ CREATE TABLE phase_2_pk_secteur
|
||||||
id integer,
|
id integer,
|
||||||
name text,
|
name text,
|
||||||
pgr_node_id integer,
|
pgr_node_id integer,
|
||||||
|
secteur_id integer,
|
||||||
the_geom geometry(Point,2154),
|
the_geom geometry(Point,2154),
|
||||||
CONSTRAINT phase_2_pk_secteur_pkey PRIMARY KEY (id),
|
CONSTRAINT phase_2_pk_secteur_pkey PRIMARY KEY (id),
|
||||||
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text),
|
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text),
|
||||||
|
|
|
@ -24,6 +24,7 @@ WITH candidates AS
|
||||||
SELECT
|
SELECT
|
||||||
pk_org.id AS pk_id,
|
pk_org.id AS pk_id,
|
||||||
pk_org.name AS name,
|
pk_org.name AS name,
|
||||||
|
pk_org.secteur_id AS secteur_id,
|
||||||
node.id AS node_id,
|
node.id AS node_id,
|
||||||
ST_Distance(pk_org.the_geom, ST_ClosestPoint(node.the_geom, pk_org.the_geom)) AS distance,
|
ST_Distance(pk_org.the_geom, ST_ClosestPoint(node.the_geom, pk_org.the_geom)) AS distance,
|
||||||
ST_Snap(
|
ST_Snap(
|
||||||
|
@ -32,7 +33,7 @@ SELECT
|
||||||
ST_Distance(pk_org.the_geom, ST_ClosestPoint(node.the_geom, pk_org.the_geom))* 1.01 -- dans la distance de ce plus proche point
|
ST_Distance(pk_org.the_geom, ST_ClosestPoint(node.the_geom, pk_org.the_geom))* 1.01 -- dans la distance de ce plus proche point
|
||||||
) AS the_geom
|
) AS the_geom
|
||||||
FROM
|
FROM
|
||||||
(SELECT id::integer, name, ST_Transform(the_geom,2154) AS the_geom FROM phase_2_pk_secteur_3857) AS pk_org,
|
(SELECT id::integer, name, secteur_id, ST_Transform(the_geom,2154) AS the_geom FROM phase_2_pk_secteur_3857) AS pk_org,
|
||||||
(SELECT id, the_geom FROM osm_roads_pgr_vertices_pgr) AS node
|
(SELECT id, the_geom FROM osm_roads_pgr_vertices_pgr) AS node
|
||||||
WHERE
|
WHERE
|
||||||
ST_INTERSECTS(node.the_geom, ST_BUFFER(ST_Transform(pk_org.the_geom,2154) ,25) )
|
ST_INTERSECTS(node.the_geom, ST_BUFFER(ST_Transform(pk_org.the_geom,2154) ,25) )
|
||||||
|
@ -44,6 +45,7 @@ SELECT
|
||||||
a.pk_id AS id,
|
a.pk_id AS id,
|
||||||
a.name,
|
a.name,
|
||||||
b.node_id AS pgr_node_id,
|
b.node_id AS pgr_node_id,
|
||||||
|
a.secteur_id::integer,
|
||||||
b.the_geom
|
b.the_geom
|
||||||
FROM candidates a JOIN
|
FROM candidates a JOIN
|
||||||
(
|
(
|
||||||
|
@ -55,10 +57,10 @@ SELECT
|
||||||
min(distance) AS min_distance,
|
min(distance) AS min_distance,
|
||||||
the_geom
|
the_geom
|
||||||
FROM candidates
|
FROM candidates
|
||||||
GROUP BY pk_id, node_id, the_geom
|
GROUP BY pk_id, secteur_id, node_id, the_geom
|
||||||
) b ON a.pk_id = b.pk_id
|
) b ON a.pk_id = b.pk_id
|
||||||
WHERE b.rang = 1
|
WHERE b.rang = 1
|
||||||
GROUP BY a.pk_id, a.name, b.node_id, b.the_geom
|
GROUP BY a.pk_id, a.name, a.secteur_id, b.node_id, b.the_geom
|
||||||
ORDER BY a.pk_id
|
ORDER BY a.pk_id ;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,8 +56,8 @@ $PSQL -h $DB_HOST -U $DB_USER -c "TRUNCATE TABLE phase_2_trace_pgr ;"
|
||||||
# et on calcule un itinéraire entre le PK de début et le PK suivant
|
# et on calcule un itinéraire entre le PK de début et le PK suivant
|
||||||
|
|
||||||
$PSQL -X -h $DB_HOST -U $DB_USER $DB_NAME \
|
$PSQL -X -h $DB_HOST -U $DB_USER $DB_NAME \
|
||||||
-c "SELECT s.id, replace(s.nom_fr,' ','') AS nom_fr, replace(s.nom_br,' ','') AS nom_br, pk.pgr_node_id
|
-c "SELECT pk.id, s.id AS secteur_id, replace(s.nom_fr,' ','') AS nom_fr, replace(s.nom_br,' ','') AS nom_br, pk.pgr_node_id
|
||||||
FROM phase_2_pk_secteur pk JOIN secteur s ON pk.id = s.id
|
FROM phase_2_pk_secteur pk JOIN secteur s ON pk.secteur_id = s.id
|
||||||
ORDER BY pk.id ;" \
|
ORDER BY pk.id ;" \
|
||||||
--single-transaction \
|
--single-transaction \
|
||||||
--set AUTOCOMMIT=off \
|
--set AUTOCOMMIT=off \
|
||||||
|
@ -74,15 +74,16 @@ ORDER BY pk.id ;" \
|
||||||
# alors la requête supprime les espaces. TODO
|
# alors la requête supprime les espaces. TODO
|
||||||
|
|
||||||
# le premier PK = PK de début
|
# le premier PK = PK de début
|
||||||
secteur_id=${Record[0]}
|
pk_id=${Record[0]}
|
||||||
secteur_nom_fr="${Record[1]}"
|
secteur_id=${Record[1]}
|
||||||
secteur_nom_br="${Record[2]}"
|
secteur_nom_fr="${Record[2]}"
|
||||||
pk_id_start=${Record[3]}
|
secteur_nom_br="${Record[3]}"
|
||||||
|
pk_id_start=${Record[4]}
|
||||||
|
|
||||||
# maintenant il faut une 2e requête pour aller trouver le PK de fin
|
# maintenant il faut une 2e requête pour aller trouver le PK de fin
|
||||||
# ce PK = le PK de début du secteur suivant
|
# ce PK = le PK de début du secteur suivant
|
||||||
read pk_id_end <<< $($PSQL -h $DB_HOST -U $DB_USER --no-align -t --quiet \
|
read pk_id_end <<< $($PSQL -h $DB_HOST -U $DB_USER --no-align -t --quiet \
|
||||||
-c "SELECT pgr_node_id FROM phase_2_pk_secteur WHERE id = $secteur_id + 1 ;")
|
-c "SELECT pgr_node_id FROM phase_2_pk_secteur WHERE id = $pk_id + 1 ;")
|
||||||
|
|
||||||
# on teste si on récupère qqch sinon ça veurt dire qu'on a pas de nœud de fin donc impossible de calculer un itinéraire
|
# on teste si on récupère qqch sinon ça veurt dire qu'on a pas de nœud de fin donc impossible de calculer un itinéraire
|
||||||
if [[ -n "$pk_id_end" ]];
|
if [[ -n "$pk_id_end" ]];
|
||||||
|
|
Loading…
Reference in a new issue