pgr_drivingDistance - pgRouting Manual (3.4)
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