Learn R Programming

stplanr (version 0.9.0)

route: Plan routes on the transport network

Description

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

Usage

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

Other routes: line2routeRetry(), line2route(), route_dodgr(), route_local(), route_osrm(), route_transportapi_public()

Examples

Run this code
# NOT RUN {
library(sf)
l = od_data_lines[2, ]
# }
# NOT RUN {
if(curl::has_internet()) {
r_walk = route(l = l, route_fun = route_osrm, osrm.profile = "foot")
r_bike = route(l = l, route_fun = route_osrm, osrm.profile = "bike")
plot(r_walk$geometry)
plot(r_bike$geometry, col = "blue", add = TRUE)
# r_bc = route(l = l, route_fun = route_bikecitizens)
# plot(r_bc)
# route(l = l, route_fun = route_bikecitizens, wait = 1)
library(osrm)
r_osrm <- route(
  l = l,
  route_fun = osrmRoute,
  returnclass = "sf"
)
nrow(r_osrm)
plot(r_osrm)
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
)
plot(r_local["all"], add = TRUE, lwd = 5)

}
# }

Run the code above in your browser using DataLab