Supported versions:
pgr_lineGraph - Experimental¶
pgr_lineGraph
— Transforma un grafo dado en su grafo correspondiente basado en aristas.
Advertencia
Posible bloqueo del servidor
Estas funciones pueden crear un bloqueo del servidor
Advertencia
Funciones experimentales
No son oficialmente de la versión actual.
Es probable que oficialmente no formen parte de la siguiente versión:
Las funciones no podrían hacer uso de ANY-INTEGER ni ANY-NUMERICAL
El nombre puede cambiar.
La firma (declaración de funciones) podría cambiar.
La funcionalidad puede cambiar.
Las pruebas de pgTap pueden estar ausentes.
Posiblemente necesite codificación c/c++.
Puede haber carencia de documentación.
Hay documentación que, en dado caso, podría ser necesario reescribir.
Ejemplos de documentación que puede ser necesario generar automáticamente.
Puede ser necesaria más retroalimentación por parte de la comunidad.
Puede depender de una función propuesta de pgRouting.
Podría depender de una función obsoleta de pgRouting
Disponibilidad
Versión 2.5.0
Nueva función Experimental
Descripción¶
Dado un grafo G, su grafo de líneas L(G) es un grafo de tal forma que:
Cada vértice de L(G) representa una arista de G
Dos vértices de L(G) son adyacentes si y sólo si sus aristas correspondientes comparten un punto final común en G.
Firmas¶
Resumen
pgr_lineGraph(edges_sql, directed)
RETURNS SET OF (seq, source, target, cost, reverse_cost)
OR EMPTY SET
Uso de valores predeterminados
pgr_lineGraph(edges_sql)
RETURNS SET OF (seq, source, target, cost, reverse_cost) OR EMPTY SET
- Ejemplo
Para un grafo dirigido
SELECT * FROM pgr_lineGraph(
'SELECT id, source, target, cost, reverse_cost FROM edge_table'
);
seq | source | target | cost | reverse_cost
-----+--------+--------+------+--------------
1 | -18 | 18 | 1 | 1
2 | -17 | 17 | 1 | 1
3 | -16 | -3 | 1 | -1
4 | -16 | 16 | 1 | 1
5 | -15 | -9 | 1 | 1
6 | -15 | 15 | 1 | 1
7 | -14 | -10 | 1 | 1
8 | -14 | 12 | 1 | -1
9 | -14 | 14 | 1 | 1
10 | -10 | -7 | 1 | 1
11 | -10 | -4 | 1 | 1
12 | -10 | 8 | 1 | 1
13 | -10 | 10 | 1 | 1
14 | -9 | -8 | 1 | 1
15 | -9 | 9 | 1 | 1
16 | -9 | 11 | 1 | -1
17 | -8 | -7 | 1 | 1
18 | -8 | -4 | 1 | 1
19 | -8 | 8 | 1 | 1
20 | -7 | -6 | 1 | 1
21 | -6 | 6 | 1 | 1
22 | -4 | -1 | 1 | 1
23 | -4 | 4 | 1 | 1
24 | -3 | -2 | 1 | -1
25 | -3 | 5 | 1 | -1
26 | -2 | -1 | 1 | -1
27 | -2 | 4 | 1 | -1
28 | -1 | 1 | 1 | 1
29 | 5 | -8 | 1 | -1
30 | 5 | 9 | 1 | -1
31 | 5 | 11 | 1 | -1
32 | 7 | -7 | 1 | 1
33 | 7 | -4 | 1 | 1
34 | 8 | 11 | 1 | -1
35 | 10 | 12 | 1 | -1
36 | 11 | 13 | 1 | -1
37 | 12 | 13 | 1 | -1
38 | 13 | -15 | 1 | -1
39 | 16 | -9 | 1 | 1
40 | 16 | 15 | 1 | 1
(40 rows)
Firma completa¶
pgr_lineGraph(edges_sql, directed);
RETURNS SET OF (seq, source, target, cost, reverse_cost) OR EMPTY SET
- Ejemplo
Para un grafo no dirigido
SELECT * FROM pgr_lineGraph(
'SELECT id, source, target, cost, reverse_cost FROM edge_table',
FALSE
);
seq | source | target | cost | reverse_cost
-----+--------+--------+------+--------------
1 | -3 | -2 | 1 | -1
2 | -3 | 5 | 1 | -1
3 | -2 | 4 | 1 | -1
4 | 1 | 4 | 1 | -1
5 | 4 | 8 | 1 | -1
6 | 4 | 10 | 1 | -1
7 | 5 | 9 | 1 | -1
8 | 5 | 11 | 1 | -1
9 | 6 | 7 | 1 | -1
10 | 7 | 8 | 1 | -1
11 | 7 | 10 | 1 | -1
12 | 8 | 9 | 1 | -1
13 | 8 | 11 | 1 | -1
14 | 9 | 15 | 1 | -1
15 | 10 | 12 | 1 | -1
16 | 10 | 14 | 1 | -1
17 | 11 | 13 | 1 | -1
18 | 12 | 13 | 1 | -1
19 | 16 | 15 | 1 | -1
(19 rows)
Parámetros¶
Columna |
Tipo |
Descripción |
---|---|---|
edges_sql |
|
Consulta SQL como se describió anteriormente. |
dirigido |
|
|
Consulta interna¶
Columna |
Tipo |
Valores predeterminados |
Descripción |
---|---|---|---|
id |
|
Identificador de la arista. |
|
origen |
|
Identificador del primer punto final en el vértice de la arista. |
|
objetivo |
|
Identificador del segundo punto final en el vértice de la arista. |
|
cost |
|
Peso de la arista (source, target)
|
|
reverse_cost |
|
-1 |
Peso de la arista (target, source),
|
Donde:
- ANY-INTEGER
SMALLINT, INTEGER, BIGINT
- ANY-NUMERICAL
SMALLINT, INTEGER, BIGINT, REAL, FLOAT
Columnas de Resultados¶
DEVUELVE UN CONJUNTO DE (seq, origen, destino, coste, invers_coste)
Columna |
Tipo |
Descripción |
---|---|---|
seq |
|
Valor secuencial a partir de 1. |
origen |
|
Identificador del vértice de origen de la arista actual id.
|
objetivo |
|
Identificador del vértice de destino de la arista actual id.
|
cost |
|
Peso de la arista (source, target).
|
reverse_cost |
|
Peso de la arista (target, source).
|
Ver también¶
Las consultas utilizan la red Datos Muestra .
Índices y tablas