From ba447d266d4f70bf5ee0cfc9d7a8e134bd494afa Mon Sep 17 00:00:00 2001 From: MaelReboux Date: Thu, 9 May 2019 10:17:31 +0200 Subject: [PATCH] =?UTF-8?q?m=C3=A9nage=20autour=20de=20la=20maj=20de=20la?= =?UTF-8?q?=20couche=20de=20routage=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/update_osm_roads_pgr.sh | 39 +++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/scripts/update_osm_roads_pgr.sh b/scripts/update_osm_roads_pgr.sh index b40638f..b1269f9 100755 --- a/scripts/update_osm_roads_pgr.sh +++ b/scripts/update_osm_roads_pgr.sh @@ -18,14 +18,45 @@ echo "" echo " prend environ 5 min" echo "" -# cette couche vient d'une base osm donc il faut la recharger -$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME -c "TRUNCATE TABLE public.osm_roads;" -$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME < data/osm_roads.sql +# la couche osm_roads vient d'être mise à jour ou recrée +# on a besoin du layer_id +# au cas où ça change : on le récupère par requête +$PSQL -X -h $DB_HOST -U redadeg -d redadeg \ + -c "SELECT layer_id FROM topology.layer WHERE table_name = 'osm_roads' ;" \ + --single-transaction \ + --set AUTOCOMMIT=off \ + --set ON_ERROR_STOP=on \ + --no-align \ + -t \ + --field-separator ' ' \ + --quiet | while read -a Record ; do -# maj de la topologie de la couche osm_roads_pgr qui sert au routage + layer_id=${Record[0]} + + echo "" + echo "layer_id de osm_roads = $layer_id" + echo "" + +done + +# sauf que je n'arrive pas à sortir cette valeur du subshell créé par la boucle do /!\ +# donc je remet ici à la main. A corriger… TODO +layer_id=1 + +# on calcule le graphe topologique en remplissant le nouvel attribut géométrique +# le 1er chiffre est l'identifiant du layer dans la table topology.layer +# le 2e chiffre est la tolérance en mètres +echo ">> calcul du graphe topologique" +$PSQL -h $DB_HOST -U redadeg -d redadeg -c "UPDATE osm_roads SET topo_geom = topology.toTopoGeom(the_geom, 'osm_roads_topo', $layer_id, 0.00001);" +echo "" +echo "fait" +echo "" + +echo ">> maj de la couche osm_roads_pgr qui sert au routage depuis la topologie" $PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME < update_osm_roads_pgr.sql +echo "" echo "fini" echo ""