ménage autour de la maj de la couche de routage…

This commit is contained in:
MaelReboux 2019-05-09 10:17:31 +02:00
parent 488569d5bb
commit ba447d266d

View file

@ -18,14 +18,45 @@ echo ""
echo " prend environ 5 min" echo " prend environ 5 min"
echo "" echo ""
# cette couche vient d'une base osm donc il faut la recharger # la couche osm_roads vient d'être mise à jour ou recrée
$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
# 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 $PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME < update_osm_roads_pgr.sql
echo ""
echo "fini" echo "fini"
echo "" echo ""