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
|
# 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 ""
|
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 (
|
psql -h $HOST_DB_osm -U osmbr -d osm -c "WITH trace_buffer AS (
|
||||||
SELECT
|
SELECT
|
||||||
secteur_id,
|
secteur_id,
|
||||||
|
@ -72,7 +96,7 @@ echo ""
|
||||||
|
|
||||||
# 4. export de osm_roads depuis la base OSM
|
# 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 ""
|
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
|
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
|
-- dans la base redadeg on a chargé la couche osm_roads qui a été calculée
|
||||||
-- à partir de données OSM
|
-- à partir de données OSM
|
||||||
|
|
||||||
-- on efface la topolgie existante
|
-- on efface la topologie existante
|
||||||
SELECT DropTopology('osm_roads_topo') ;
|
SELECT DropTopology('osm_roads_topo') ;
|
||||||
|
|
||||||
-- 1. création d'un schéma qui va accueillir le réseau topologique de la couche osm_roads
|
-- 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
|
-- permissions
|
||||||
ALTER SCHEMA osm_roads_topo OWNER TO redadeg ;
|
ALTER SCHEMA osm_roads_topo OWNER TO redadeg ;
|
||||||
ALTER TABLE osm_roads_topo.edge_data OWNER TO redadeg ;
|
ALTER TABLE osm_roads_topo.edge_data OWNER TO redadeg ;
|
||||||
|
|
|
@ -4,13 +4,20 @@
|
||||||
|
|
||||||
./traitements_phase_1.sh
|
./traitements_phase_1.sh
|
||||||
|
|
||||||
|
|
||||||
./create_osm_roads.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
|
./update_osm_roads_pgr.sh
|
||||||
|
# maj des couches de routage
|
||||||
|
|
||||||
#./update_server_routing_tables.sh
|
|
||||||
|
|
||||||
./traitements_phase_2.sh
|
./traitements_phase_2.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,11 +11,6 @@
|
||||||
-- or cette couche est calculée à partir d'une BD osm cf la documentation
|
-- 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
|
-- maj de la couche support des calculs d'itinéraire
|
||||||
-- 30 s
|
-- 30 s
|
||||||
-- on commence par vider les couches existantes
|
-- on commence par vider les couches existantes
|
||||||
|
|
Loading…
Reference in a new issue