pgr_drivingDistance
¶
pgr_drivingDistance
- Returns the driving distance from a start node.
Availability
Version 2.1.0:
Signature change pgr_drivingDistance(single vertex)
New Official pgr_drivingDistance(multiple vertices)
Version 2.0.0:
Official pgr_drivingDistance(single vertex)
Description¶
Using the Dijkstra algorithm, extracts all the nodes that have costs less than
or equal to the value distance
.
The edges extracted will conform to the corresponding spanning tree.
Signatures¶
directed
])(seq, [from_v,] node, edge, cost, agg_cost)
Single Vertex¶
directed
])(seq, path_seq, node, edge, cost, agg_cost)
- Example:
From vertex \(11\) for a distance of \(3.0\)
SELECT * FROM pgr_drivingDistance(
'SELECT id, source, target, cost, reverse_cost FROM edges',
11, 3.0);
seq | node | edge | cost | agg_cost
-----+------+------+------+----------
1 | 11 | -1 | 0 | 0
2 | 7 | 8 | 1 | 1
3 | 12 | 11 | 1 | 1
4 | 16 | 9 | 1 | 1
5 | 3 | 7 | 1 | 2
6 | 6 | 4 | 1 | 2
7 | 8 | 10 | 1 | 2
8 | 15 | 16 | 1 | 2
9 | 17 | 15 | 1 | 2
10 | 1 | 6 | 1 | 3
11 | 5 | 1 | 1 | 3
12 | 9 | 14 | 1 | 3
13 | 10 | 3 | 1 | 3
(13 rows)
Multiple Vertices¶
(seq, from_v, node, edge, cost, agg_cost)
- Example:
From vertices \(\{11, 16\}\) for a distance of \(3.0\) with equi-cost on a directed graph
SELECT * FROM pgr_drivingDistance(
'SELECT id, source, target, cost, reverse_cost FROM edges',
array[11, 16], 3.0, equicost => true);
seq | from_v | node | edge | cost | agg_cost
-----+--------+------+------+------+----------
1 | 11 | 11 | -1 | 0 | 0
2 | 11 | 7 | 8 | 1 | 1
3 | 11 | 12 | 11 | 1 | 1
4 | 11 | 3 | 7 | 1 | 2
5 | 11 | 6 | 4 | 1 | 2
6 | 11 | 8 | 10 | 1 | 2
7 | 11 | 1 | 6 | 1 | 3
8 | 11 | 5 | 1 | 1 | 3
9 | 11 | 9 | 14 | 1 | 3
10 | 16 | 16 | -1 | 0 | 0
11 | 16 | 15 | 16 | 1 | 1
12 | 16 | 17 | 15 | 1 | 1
13 | 16 | 10 | 3 | 1 | 2
(13 rows)
Parameters¶
Parameter |
Type |
Description |
---|---|---|
|
Edges SQL as described below. |
|
Root vid |
|
Identifier of the root vertex of the tree. |
Root vids |
|
Array of identifiers of the root vertices.
|
distance |
|
Upper limit for the inclusion of a node in the result. |
Where:
- ANY-INTEGER:
SMALLINT
,INTEGER
,BIGINT
- ANY-NUMERIC:
SMALLINT
,INTEGER
,BIGINT
,REAL
,FLOAT
Optional parameters¶
Column |
Type |
Default |
Description |
---|---|---|---|
|
|
|
|
Driving distance optional parameters¶
Column |
Type |
Default |
Description |
---|---|---|---|
|
|
|
|
Inner Queries¶
Edges SQL¶
Column |
Type |
Default |
Description |
---|---|---|---|
|
ANY-INTEGER |
Identifier of the edge. |
|
|
ANY-INTEGER |
Identifier of the first end point vertex of the edge. |
|
|
ANY-INTEGER |
Identifier of the second end point vertex of the edge. |
|
|
ANY-NUMERICAL |
Weight of the edge ( |
|
|
ANY-NUMERICAL |
-1 |
Weight of the edge (
|
Where:
- ANY-INTEGER:
SMALLINT
,INTEGER
,BIGINT
- ANY-NUMERICAL:
SMALLINT
,INTEGER
,BIGINT
,REAL
,FLOAT
Result Columns¶
Returns SET OF (seq, from_v, node, edge, cost, agg_cost)
Parameter |
Type |
Description |
---|---|---|
|
|
Sequential value starting from \(1\). |
|
|
Identifier of the root vertex. |
|
|
Identifier of |
|
|
Identifier of the
|
|
|
Cost to traverse |
|
|
Aggregate cost from |
Where:
- ANY-INTEGER:
SMALLINT, INTEGER, BIGINT
- ANY-NUMERIC:
SMALLINT, INTEGER, BIGINT, REAL, FLOAT, NUMERIC
Additional Examples¶
- Example:
From vertices \(\{11, 16\}\) for a distance of \(3.0\) on an undirected graph
SELECT * FROM pgr_drivingDistance(
'SELECT id, source, target, cost, reverse_cost FROM edges',
array[11, 16], 3.0, directed => false);
seq | from_v | node | edge | cost | agg_cost
-----+--------+------+------+------+----------
1 | 11 | 11 | -1 | 0 | 0
2 | 11 | 7 | 8 | 1 | 1
3 | 11 | 10 | 5 | 1 | 1
4 | 11 | 12 | 11 | 1 | 1
5 | 11 | 16 | 9 | 1 | 1
6 | 11 | 3 | 7 | 1 | 2
7 | 11 | 6 | 2 | 1 | 2
8 | 11 | 8 | 10 | 1 | 2
9 | 11 | 15 | 3 | 1 | 2
10 | 11 | 17 | 15 | 1 | 2
11 | 11 | 1 | 6 | 1 | 3
12 | 11 | 5 | 1 | 1 | 3
13 | 11 | 9 | 14 | 1 | 3
14 | 16 | 16 | -1 | 0 | 0
15 | 16 | 11 | 9 | 1 | 1
16 | 16 | 15 | 16 | 1 | 1
17 | 16 | 17 | 15 | 1 | 1
18 | 16 | 7 | 8 | 1 | 2
19 | 16 | 10 | 5 | 1 | 2
20 | 16 | 12 | 13 | 1 | 2
21 | 16 | 3 | 7 | 1 | 3
22 | 16 | 6 | 4 | 1 | 3
23 | 16 | 8 | 10 | 1 | 3
(23 rows)
See Also¶
pgr_alphaShape - Alpha shape computation
Sample Data network.
Indices and tables