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,
|
||||
name text,
|
||||
pgr_node_id integer,
|
||||
secteur_id integer,
|
||||
the_geom geometry(Point,2154),
|
||||
CONSTRAINT phase_2_pk_secteur_pkey PRIMARY KEY (id),
|
||||
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text),
|
||||
|
|
|
@ -24,6 +24,7 @@ WITH candidates AS
|
|||
SELECT
|
||||
pk_org.id AS pk_id,
|
||||
pk_org.name AS name,
|
||||
pk_org.secteur_id AS secteur_id,
|
||||
node.id AS node_id,
|
||||
ST_Distance(pk_org.the_geom, ST_ClosestPoint(node.the_geom, pk_org.the_geom)) AS distance,
|
||||
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
|
||||
) AS the_geom
|
||||
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
|
||||
WHERE
|
||||
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.name,
|
||||
b.node_id AS pgr_node_id,
|
||||
a.secteur_id::integer,
|
||||
b.the_geom
|
||||
FROM candidates a JOIN
|
||||
(
|
||||
|
@ -55,10 +57,10 @@ SELECT
|
|||
min(distance) AS min_distance,
|
||||
the_geom
|
||||
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
|
||||
WHERE b.rang = 1
|
||||
GROUP BY a.pk_id, a.name, b.node_id, b.the_geom
|
||||
ORDER BY a.pk_id
|
||||
GROUP BY a.pk_id, a.name, a.secteur_id, b.node_id, b.the_geom
|
||||
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
|
||||
|
||||
$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
|
||||
FROM phase_2_pk_secteur pk JOIN secteur s ON pk.id = s.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.secteur_id = s.id
|
||||
ORDER BY pk.id ;" \
|
||||
--single-transaction \
|
||||
--set AUTOCOMMIT=off \
|
||||
|
@ -74,15 +74,16 @@ ORDER BY pk.id ;" \
|
|||
# alors la requête supprime les espaces. TODO
|
||||
|
||||
# le premier PK = PK de début
|
||||
secteur_id=${Record[0]}
|
||||
secteur_nom_fr="${Record[1]}"
|
||||
secteur_nom_br="${Record[2]}"
|
||||
pk_id_start=${Record[3]}
|
||||
pk_id=${Record[0]}
|
||||
secteur_id=${Record[1]}
|
||||
secteur_nom_fr="${Record[2]}"
|
||||
secteur_nom_br="${Record[3]}"
|
||||
pk_id_start=${Record[4]}
|
||||
|
||||
# maintenant il faut une 2e requête pour aller trouver le PK de fin
|
||||
# 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 \
|
||||
-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
|
||||
if [[ -n "$pk_id_end" ]];
|
||||
|
|
Loading…
Reference in a new issue