Guida rapida su pgRouting¶
pgRouting è un’estensione e aggiunge funzionalità di routing e altre analisi di reti ai database PostGIS/PostgreSQL.
Questa guida rapida descrive come aprire un database con la linea di comando ed eseguire una semplice interrogazione per il percordo più corto con un set di dati campione.
Eseguire pgRouting¶
- Aprire una finestra
pgrouting
:
e
collegarsi al database
psql -U user pgrouting
- Digitare \d che vi mostrerà tutte le tabelle disponibili:
List of relations
Schema | Name | Type | Owner
--------+---------------------+----------+-------
public | classes | table | user
public | geography_columns | view | user
public | geometry_columns | view | user
public | nodes | table | user
public | raster_columns | view | user
public | raster_overviews | view | user
public | relation_ways | table | user
public | relations | table | user
public | spatial_ref_sys | table | user
public | types | table | user
public | vertices_tmp | table | user
public | vertices_tmp_id_seq | sequence | user
public | way_tag | table | user
public | ways | table | user
(14 rows)
- Eseguire la funzione per il percorso più corto Dijkstra:
SELECT seq, id1 AS node, id2 AS edge, cost
FROM pgr_dijkstra('
SELECT gid::int as id, source::int, target::int,
length::float8 as cost FROM ways',
100, 600, false, false
);
seq | node | edge | cost
-----+------+-------+---------------------
0 | 100 | 115 | 0.0605959823538948
1 | 99 | 2972 | 0.197600739218643
2 | 2151 | 3783 | 0.0139212050887606
... | ... | ... | ...
52 | 599 | 732 | 0.0390125147117973
53 | 600 | -1 | 0
(54 rows)
- Per ottenere la geometria del percorso, collegare il risultato con le geometrie della strada:
SELECT seq, id2 AS edge, rpad(b.the_geom,60,' ') AS "the_geom (truncated)"
FROM pgr_dijkstra('
SELECT gid::int as id, source::int, target::int,
length::float8 as cost FROM ways',
100, 600, false, false
) a INNER JOIN ways b ON (a.id2 = b.gid) ORDER BY seq;
seq | edge | the_geom (truncated)
-----+-------+--------------------------------------------------------------
0 | 115 | 0102000020E610000002000000012D0208C4B0F2BFBD2DA237267A4A40E5
1 | 2972 | 0102000020E610000002000000622B0DA1EFB3F2BF65236B685E7A4A4001
2 | 3783 | 0102000020E610000002000000BD4571D8C7B4F2BFB2648EE55D7A4A4062
... | ... | ...
52 | 732 | 0102000020E6100000020000006B48DC63E903F3BF84CCDFCECF7B4A40E9
(53 rows)
- Con il comando \q uscirete dalla shell di PostgreSQL.
E poi?¶
- pgRouting Website - Visitate il sito web del progetto http://www.pgrouting.org per imparare di più su pgRouting.
- Workshop Documentation - Trova la documentazione aggiornata in http://docs.pgrouting.org
Note
Per aggiornare all’ultima versione del tutorial, aprire una finestra del terminale,
ed eseguire sudo apt-get update && apt-get upgrade pgrouting-workshop