ménage autour de la maj de la couche de routage…
This commit is contained in:
parent
aeb01dc8e1
commit
488569d5bb
|
@ -30,10 +30,34 @@ echo ""
|
|||
|
||||
# 3. calcul de la couche osm_roads = intersection buffer trace et routes OSM
|
||||
|
||||
echo "calcul de la couche osm_roads"
|
||||
echo ">> calcul de la couche osm_roads"
|
||||
echo ""
|
||||
|
||||
# on supprime puis on recrée la table
|
||||
psql -h $HOST_DB_osm -U osmbr -d osm -c "DROP TABLE IF EXISTS osm_roads ;"
|
||||
psql -h $HOST_DB_osm -U osmbr -d osm -c "
|
||||
CREATE TABLE osm_roads
|
||||
(
|
||||
uid bigint,
|
||||
osm_id bigint,
|
||||
highway text,
|
||||
type text,
|
||||
oneway text,
|
||||
ref text,
|
||||
name_fr text,
|
||||
name_br text,
|
||||
the_geom geometry,
|
||||
CONSTRAINT osm_roads_pkey PRIMARY KEY (uid),
|
||||
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text OR geometrytype(the_geom) = 'MULTILINESTRING'::text),
|
||||
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 2154)
|
||||
);"
|
||||
|
||||
echo ""
|
||||
echo " table osm_roads créée"
|
||||
echo ""
|
||||
echo " chargement des données"
|
||||
echo ""
|
||||
|
||||
psql -h $HOST_DB_osm -U osmbr -d osm -c "TRUNCATE TABLE osm_roads ;"
|
||||
psql -h $HOST_DB_osm -U osmbr -d osm -c "WITH trace_buffer AS (
|
||||
SELECT
|
||||
secteur_id,
|
||||
|
@ -72,7 +96,7 @@ echo ""
|
|||
|
||||
# 4. export de osm_roads depuis la base OSM
|
||||
|
||||
echo "import de osm_roads depuis la base OSM vers la base redadeg"
|
||||
echo "transfert de osm_roads depuis la base OSM vers la base redadeg"
|
||||
echo ""
|
||||
|
||||
pg_dump --file data/osm_roads.sql --host $HOST_DB_osm --username osmbr --no-password --format=p --no-owner --section=pre-data --section=data --no-privileges --no-tablespaces --no-unlogged-table-data --no-comments --table public.osm_roads osm
|
||||
|
|
56
scripts/create_osm_roads_pgr.sh
Executable file
56
scripts/create_osm_roads_pgr.sh
Executable file
|
@ -0,0 +1,56 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
|
||||
echo " Création de la couche osm_roads_pgr"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
HOST_DB_redadeg=localhost
|
||||
HOST_DB_osm=192.168.56.1
|
||||
|
||||
# suppose le le .pgpass est correctement configuré pour le compte qui lance ce script
|
||||
|
||||
|
||||
echo ">> suppression de la topologie existante"
|
||||
echo ""
|
||||
#psql -h $HOST_DB_redadeg -U redadeg -d redadeg -c "SELECT DropTopology('osm_roads_topo') ;"
|
||||
echo ""
|
||||
|
||||
# création d'un schéma qui va accueillir le réseau topologique de la couche osm_roads
|
||||
echo ">> création d'une nouvelle topologie"
|
||||
echo ""
|
||||
#psql -h $HOST_DB_redadeg -U redadeg -d redadeg -c "SELECT topology.CreateTopology('osm_roads_topo', 2154);"
|
||||
|
||||
|
||||
# on a donc un nouveau schéma osm_roads_topo qui contient 4 tables : edge_data, face, node, relation
|
||||
# et un nouvel enregistrement dans la table topology.layer
|
||||
# logiquement : c'est 1 mais on va quand même faire une requête
|
||||
|
||||
psql -X -h $HOST_DB_redadeg -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
|
||||
|
||||
layer_id=${Record[0]}
|
||||
|
||||
echo ""
|
||||
echo "layer_id de osm_roads = $layer_id"
|
||||
echo ""
|
||||
|
||||
done
|
||||
|
||||
echo ">> ajout d'un nouvel attribut sur la table osm_roads"
|
||||
echo ""
|
||||
psql -h $HOST_DB_redadeg -U redadeg -d redadeg -c "SELECT topology.AddTopoGeometryColumn('osm_roads_topo', 'public', 'osm_roads', 'topo_geom', 'LINESTRING');"
|
||||
echo ""
|
||||
echo "fait"
|
||||
echo ""
|
||||
|
||||
echo "fini >> exécuter update_osm_roads_pgr.sh "
|
||||
echo ""
|
|
@ -10,7 +10,7 @@
|
|||
-- dans la base redadeg on a chargé la couche osm_roads qui a été calculée
|
||||
-- à partir de données OSM
|
||||
|
||||
-- on efface la topolgie existante
|
||||
-- on efface la topologie existante
|
||||
SELECT DropTopology('osm_roads_topo') ;
|
||||
|
||||
-- 1. création d'un schéma qui va accueillir le réseau topologique de la couche osm_roads
|
||||
|
@ -113,10 +113,6 @@ ON a.edge = b.id
|
|||
|
||||
|
||||
|
||||
|
||||
-- si besoin : nettoyage par Drop du schéma
|
||||
SELECT topology.DropTopology('osm_roads_topo');
|
||||
|
||||
-- permissions
|
||||
ALTER SCHEMA osm_roads_topo OWNER TO redadeg ;
|
||||
ALTER TABLE osm_roads_topo.edge_data OWNER TO redadeg ;
|
||||
|
|
|
@ -4,13 +4,20 @@
|
|||
|
||||
./traitements_phase_1.sh
|
||||
|
||||
|
||||
./create_osm_roads.sh
|
||||
# import du tracé phase 1 dans la base OSM
|
||||
# extraction du réseau de voies à proximité
|
||||
# chargement de la couche osm_roads dans la base redadeg
|
||||
|
||||
|
||||
./create_osm_roads_pgr.sh
|
||||
# à utiliser si on veut complètement recréer un graphe routier à neuf
|
||||
|
||||
|
||||
./update_osm_roads_pgr.sh
|
||||
# maj des couches de routage
|
||||
|
||||
#./update_server_routing_tables.sh
|
||||
|
||||
./traitements_phase_2.sh
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -11,11 +11,6 @@
|
|||
-- or cette couche est calculée à partir d'une BD osm cf la documentation
|
||||
|
||||
|
||||
-- maj de la topologie de la couche osm_roads_pgr qui sert au routage
|
||||
-- 3 min
|
||||
UPDATE osm_roads SET topo_geom = topology.toTopoGeom(the_geom, 'osm_roads_topo', 1, 0.00001);
|
||||
|
||||
|
||||
-- maj de la couche support des calculs d'itinéraire
|
||||
-- 30 s
|
||||
-- on commence par vider les couches existantes
|
||||
|
|
Loading…
Reference in a new issue