Consultas básicas de roteamento PGR

pgRouting é uma extensão do PostGIS que é uma extensão do PostgreSQL 🙂

PostGIS permite ao usuário acessar uma lista incrível de consultas “geo-especializadas” e pgRouting adiciona a lógica de roteamento.

Instalação

Com o pgRouting 2.0, a instalação é realmente fácil

sudo add-apt-repository ppa:georepublic/pgrouting
sudo apt
-get update
sudo apt
-get install postgresql-9.1-pgrouting

Construa uma rede

Usando osm2pgroutingvocê pode importar um extrato de dados do OpenStreetMap para o seu banco de dados

sudo apt-get install osm2pgrouting
wget
-O lausanne.osm http://overpass.osm.rambler.ru/cgi/xapi_meta?*[bbox=6.6072,46.5041,6.6593,46.5466]
osm2pgrouting
-file ./fichier.osm
-conf ./mapconfig.xml
-dbname ma_base
-user user
-passwd user
-clean

Consultas básicas

Pegue o caminho mais curto

SELECT st_union(route.the_geom)
FROM
(
SELECT
* FROM pgr_dijkstra('ways', START_NODE, END_NODE)
) as route

Gerar uma isócrona

SELECT 1 as id, ST_ConcaveHull(st_union(the_geom), 0.95)
FROM
(
SELECT ways_vertices_pgr
.the_geom
FROM pgr_drivingDistance
(
'SELECT gid as id, source, target, st_astext(the_geom), ST_Length(the_geom::geography) as cost FROM ways',
NODE_ID
,
250,
false,
false)
INNER JOIN ways on
(ways.gid = id2)
INNER JOIN ways_vertices_pgr on
(ways_vertices_pgr.id = ways.source)
) as t