Takes origins and destinations, finds the optimal routes between them and returns the result as a spatial (sf or sp) object. The definition of optimal depends on the routing function used

route(
  from = NULL,
  to = NULL,
  l = NULL,
  route_fun = cyclestreets::journey,
  wait = 0,
  n_print = 10,
  list_output = FALSE,
  cl = NULL,
  ...
)

Arguments

from

An object representing origins (if lines are provided as the first argument, from is assigned to l)

to

An object representing destinations

l

Only needed if from and to are empty, in which case this should be a spatial object representing desire lines

route_fun

A routing function to be used for converting the straight lines to routes od2line()

wait

How long to wait between routes? 0 seconds by default, can be useful when sending requests to rate limited APIs.

n_print

A number specifying how frequently progress updates should be shown

list_output

If FALSE (default) assumes spatial (linestring) object output. Set to TRUE to save output as a list.

cl

Cluster

...

Arguments passed to the routing function, e.g. route_cyclestreets()

See also

Examples

library(sf) l = od_data_lines[2, ] r_walk = route(l = l, route_fun = route_osrm, osrm.profile = "foot")
#> Most common output is sf
r_bike = route(l = l, route_fun = route_osrm, osrm.profile = "bike")
#> Most common output is sf
plot(r_walk$geometry)
plot(r_bike$geometry, col = "blue", add = TRUE)
# \donttest{ # r_bc = route(l = l, route_fun = route_bikecitizens) # plot(r_bc) # route(l = l, route_fun = route_bikecitizens, wait = 1) library(osrm)
#> Data: (c) OpenStreetMap contributors, ODbL 1.0 - http://www.openstreetmap.org/copyright
#> Routing: OSRM - http://project-osrm.org/
r_osrm <- route( l = l, route_fun = osrmRoute, returnclass = "sf" )
#> Most common output is sf
nrow(r_osrm)
#> [1] 1
plot(r_osrm)
#> Warning: plotting the first 9 out of 23 attributes; use max.plot = 23 to plot all
sln <- stplanr::SpatialLinesNetwork(route_network_sf) # calculate shortest paths plot(sln)
plot(l$geometry, add = TRUE)
r_local <- stplanr::route( l = l, route_fun = stplanr::route_local, sln = sln )
#> Most common output is sf
plot(r_local["all"], add = TRUE, lwd = 5)
# }