pgRouting Manual (2.0.0)

Consultas Personalizadas

«  Análisis de gráficas   ::   Contents   ::   Consejos de Rendimiento  »

Consultas Personalizadas

En general, los algoritmos de enrutamiento necesitan una consulta SQL que contienen uno o más de las siguientes columnas necesarias con el tipo preferido:

id:int4
source:int4
target:int4
cost:float8
reverse_cost:float8
x:float8
y:float8
x1:float8
y1:float8
x2:float8
y2:float8

Cuando el la tabla de bordes tiene las columnas mencionadas, pueden utilizarse las siguientes consultas SQL.

SELECT source, target, cost FROM edge_table;
SELECT id, source, target, cost FROM edge_table;
SELECT id, source, target, cost, x1, y1, x2, y2 ,reverse_cost FROM edge_table

Cuandola tabla de bordes tiene un nombre diferente para representar las columnas necesarias:

SELECT src as source,  target, cost FROM othertable;
SELECT gid as id, src as source, target, cost FROM othertable;
SELECT gid as id, src as source, target, cost, fromX as x1, fromY as y1, toX as x2, toY as y2 ,Rcost as reverse_cost
       FROM othertable;

Las funciones de topología utilizan los mismos nombres de columnas id, source y target de la tabla del bordes, los siguientes parámetros tienen como valor predeterminado:

id:int4 Por defecto id
source:int4 Por defecto source
target:int4 Por defecto target
the_geom:text Por defecto the_geom
oneway:text Por defecto oneway
rows_where:text Por defecto true para indicar todos los registros (esto no es una columna)

Los siguientes parámetros no tienen un valor por defecto y cuando se usan tienen que insertarse en estricto orden:

edge_table:text
tolerance:float8
s_in_rules:text[]
s_out_rules:text[]
t_in_rules:text[]
t_out_rules:text[]

Cuando las columnas necesarias tienen los nombres por defecto se puede usar lo siguiente: (pgr_func es representar una función de topología)

pgr_func('edge_table')        -- when tolerance is not requiered
pgr_func('edge_table',0.001)  -- when tolerance is requiered
-- s_in_rule, s_out_rule, st_in_rules, t_out_rules are requiered
SELECT pgr_analyzeOneway('edge_table', ARRAY['', 'B', 'TF'], ARRAY['', 'B', 'FT'],
                                       ARRAY['', 'B', 'FT'], ARRAY['', 'B', 'TF'])

Cuando las columnas necesarias no tienen los nombres por defecto se recomienda enormemente usar la notación con nombre.

pgr_func('othertable', id:='gid',source:='src',the_geom:='mygeom')
pgr_func('othertable',0.001,the_geom:='mygeom',id:='gid',source:='src')
SELECT pgr_analyzeOneway('othertable', ARRAY['', 'B', 'TF'], ARRAY['', 'B', 'FT'],
                                       ARRAY['', 'B', 'FT'], ARRAY['', 'B', 'TF']
                         source:='src',oneway:='dir')

«  Análisis de gráficas   ::   Contents   ::   Consejos de Rendimiento  »