R interface to the CycleStreets.net journey planning API, a route planner made by cyclists for cyclists. See cyclestreets.net/api for details.
journey(
from,
to,
plan = "fastest",
silent = TRUE,
pat = NULL,
base_url = "https://www.cyclestreets.net",
reporterrors = TRUE,
save_raw = "FALSE",
...
)Longitude/Latitude pair, e.g. c(-1.55, 53.80)
Longitude/Latitude pair, e.g. c(-1.55, 53.80)
Text strong of either "fastest" (default), "quietest" or "balanced"
Logical (default is FALSE). TRUE hides request sent.
The API key used. By default this uses Sys.getenv("CYCLESTREETS").
The base url from which to construct API requests (with default set to main server)
Boolean value (TRUE/FALSE) indicating if cyclestreets (TRUE by default). should report errors (FALSE by default).
Boolean value which returns raw list from the json if TRUE (FALSE by default).
Arguments passed to json2sf_cs
Requires the internet and a CycleStreets.net API key. CycleStreets.net does not yet work worldwide.
You need to have an api key for this code to run.
By default it uses the CYCLESTREETS environment variable.
A quick way to set this is to install the usethis package and then
executing the following command:
usethis::edit_r_environ()
That should open up a new file in your text editor where you can add the environment variable as follows (replace 1a... with your key for this to work):
CYCLESTREETS=1a43ed677e5e6fe9
After setting the environment variable, as outlined above, you need to restart your R session before the journey function will work.
See www.cyclestreets.net/help/journey/howitworks/ for details on how these are calculated.
CycleStreets can give you lots of info at route and segment level. Commonly useful columns include:
See json2sf_cs() for details.
json2sf_cs
if (FALSE) { # \dontrun{
from = c(-1.55, 53.80) # geo_code("leeds")
to = c(-1.76, 53.80) # geo_code("bradford uk")
r1 = journey(from, to)
names(r1)
cols = c("name", "provisionName", "distances", "time", "quietness", "edition", "gradient_smooth")
r2 = journey(from, to, cols_to_keep = cols)
names(r2)
r2
r1[1:2, ]
r1$grammesCO2saved
r1$calories
plot(r1[1:4])
plot(r1[10:ncol(r1)])
to = c(-2, 53.5) # towards Manchester
r1 = journey(from, to)
names(r1)
r2 = journey(from, to, plan = "balanced")
plot(r1["quietness"], reset = FALSE)
plot(r2["quietness"], add = TRUE)
r3 = journey(from, to, silent = FALSE)
r4 = journey(from, to, save_raw = TRUE)
r5 = journey(c(-1.524, 53.819), c(-1.556, 53.806))
plot(r5["gradient_segment"])
plot(r5["gradient_smooth"])
u = paste0("https://github.com/cyclestreets/cyclestreets-r/",
"releases/download/v0.4.0/line_with_single_segment.geojson")
desire_line = sf::read_sf(u)
r = stplanr::route(l = desire_line, route_fun = journey)
r
} # }