Skip to contents

The function shortest_path_igraph can be used to calculate the shortest path (either in minutes or meters) between nodes in the Norwegian road network. The function can also return the node link, i.e. path, that the shortest path consists of.

Usage

shortest_path_igraph(
  from_node_ID,
  to_node_ID,
  graph_object = graph,
  unit = "minutes",
  path = FALSE
)

Arguments

from_node_ID

Numeric value with the from node ID (if multiple node ID’s are to be used, see the function shortest_path_cppRouting()).

to_node_ID

Numeric value with the to node ID (if multiple node ID’s are to be used, see the function shortest_path_cppRouting()).

graph_object

The road network structured as a tidy graph (tbl_graph object). This can be created with the function vegnett_to_R().

unit

Character vector with minutes to calculate the shortest path in minutes or meters for the shortest path in meters.

path

Logical. If TRUE the node link with the shortest path is returned.

Value

Vector with the shortest path in minutes or meters. If path = TRUE the node link that the shortest path consists of is returned.

Details

Before the function can be used, the road network must be converted to a tbl_graph object. This can be done with the function vegnett_to_R()). There objects graph and edges needs to be loaded.

Examples

shortest_path_igraph(from_node_ID = 25,
                     to_node_ID = 33,
                     unit = "minutes",
                     graph_object = graph_sampledata)
#> # A tibble: 1 x 1
#>   length
#>    <dbl>
#> 1  0.607

shortest_path_igraph(from_node_ID = 25,
                     to_node_ID = 33,
                     unit = "meters",
                     graph_object = graph_sampledata)
#> # A tibble: 1 x 1
#>   length
#>    <dbl>
#> 1   347.

shortest_path_igraph(from_node_ID = 25,
                     to_node_ID = 33,
                     unit = "minutes",
                     path = TRUE,
                     graph_object = graph_sampledata)
#> $vpath
#> $vpath[[1]]
#> + 9/1159 vertices, from d4a5573:
#> [1] 25 26 27 28 29 30 31 32 33
#> 
#> 
#> $epath
#> $epath[[1]]
#> + 8/1741 edges from d4a5573:
#> [1] 25->26 26->27 27->28 28->29 29->30 30->31 31->32 32->33
#> 
#> 
#> $predecessors
#> NULL
#> 
#> $inbound_edges
#> NULL
#>