pgRouting Manual (2.0.0)

Comenzando a trabajar

«  Tutoriales   ::   Contents   ::   Topología para Ruteo  »

Comenzando a trabajar

Esta es una guía simple para llevarte a través de los pasos básicos para trabajar con pgRouting. Esta guía cubre:

  • Cómo crear una base de datos para ser utilizada por nuestro proyecto
  • Cómo cargar algunos datos
  • Cómo construir una topología
  • Cómo comprobar la gráfica para errores
  • Cómo calcular una ruta
  • Cómo utilizar otras herramientas para ver la gráfica y la ruta
  • Cómo crear una aplicación web

Cómo crear una base de datos para ser utilizada por nuestro proyecto

Lo primero que hay que hacer es crear una base de datos y cargar pgRouting a la base de datos. Típicamente se creará una base de datos para cada proyecto. Una vez que se tiene una base de datos donde trabajar, se pueden cargar los datos y construir la aplicación en la base de datos. Esto hace que sea sencillo de mover el proyecto en el futuro, como por ejemplo, a un servidor de producción.

Para Postgresql 9.1 y versiones posteriores

createdb mydatabase
psql mydatabase -c "create extension postgis"
psql mydatabase -c "create extension pgrouting"

Para versiones anteriores de postgresql

createdb -T template1 template_postgis
psql template_postgis -c "create language plpgsql"
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis-1.5/postgis.sql
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis-1.5/spatial_ref_sys.sql
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis_comments.sql

createdb -T template_postgis template_pgrouting
psql template_pgrouting -f /usr/share/postgresql/9.0/contrib/pgrouting-2.0/pgrouting.sql

createdb -T template_pgrouting mydatabase

Cómo cargar algunos datos

El cómo cargar los datos dependerá de el formato que tienen. Existen varias herramientas de Código Abierto que le pueden ayudar, como:

shp2pgsql:
  • Este es un cargador de archivo shape a postgresql
ogr2ogr:
  • Esta es una utilidad de conversión de datos vectoriales
osm2pgsql:
  • Esta es una herramienta para cargar los datos de OSM a postgresql

Así que estas herramientas, y probablemente otras más, le permitan leer datos vectoriales y se pueden cargar esos datos a una tabla de la base de datos. En este momento, se necesita saber un poco sobre el contenido y estructura de los datos. Una forma fácil de navegar en tu bases de datos es con pgAdmin3 o phpPgAdmin.

Cómo construir una topología

Lo siguiente que se necesita hacer es construir la topología de nuestros datos de las calles. Lo que esto significa es que para cualquier borde que se encuentra en los datos de las calles, los extremos del borde se conectan a un nodo único y a otros bordes que también se conectan a ese mismo nodo único. Una vez que todos los bordes están conectados a los nodos tenemos una gráfica que se puede ser utilizada para el ruteo con pgRouting. Proporcionamos herramientas que ayudarán con esto:

select pgr_createTopology('myroads', 0.000001);

Ver pgr_createTopology para más información.

Cómo comprobar la gráfica para errores

Hay varias posibles fuentes de errores en un gráfico. Los datos con los que usted comenzó pudieron no haber sido diseñados con ruteo en mente. Un gráfico tiene algunos requerimientos muy específicos. Uno es que sea NODED, esto significa que, a excepción de algunos casos de uso muy especial, cada uno de los segmentos del camino comienza y termina en un nodo y que en general no cruzan un segmento de camino al que deba conectarse.

Puede haber otros errores como en una calle de un solo sentido tener el sentido equivocado. No contamos con herramientas para buscar todos los errores posibles, pero tenemos algunas herramientas básicas que pueden ayudar.

select pgr_analyzegraph('myroads', 0.000001);
select pgr_analyzeoneway('myroads',  s_in_rules, s_out_rules,
                                     t_in_rules, t_out_rules
                                     direction)

Ver Análisis de gráficas para más información.

Si necesita crearle a sus datos los los nodos, tenemos una herramienta que puede ayudar.

Ver pgr_nodeNetwork para más información.

Cómo calcular una ruta

Una vez realizado el trabajo de preparación descrito anteriormente, el cálculo de una ruta es bastante fácil. Contamos con varios algoritmos, pero pueden trabajar con su red vial preparada. La forma general de una consulta de ruta es:

select pgr_<algorithm>(<SQL for edges>, start, end, <additonal options>)

Como se puede ver, es bastante sencillo. Puede revisar los algoritmos específicos para ver los detalles de cómo usarlos. Lo que usted recibe como el resultado de estas consultas será un conjunto de registros del tipo l:ref:type_cost_result or pgr_geomResult[]. Estos resultados tienen información como Identificación del borde y/o el identificaror id del nodo junto con el costo o la geometría para el camino desde el Inicio hasta el final. Usando los identificadores puede unir estos resultados de vuelta a su tabla de calles para obtener más información acerca de cada paso en el camino.

Cómo utilizar otras herramientas para ver la gráfica y la ruta

Por Definirse

Cómo crear una aplicación web

Por Definirse

«  Tutoriales   ::   Contents   ::   Topología para Ruteo  »