Request public transport connections between given points and find stations nearby using the ‘HERE Public Transit’ API.
The function connection()
allows to request public transport connections from the API. Two types of requests are provided:
connection(..., summary = FALSE)
: The public transport connections are returned as multiple sections with the same vehicle and transport mode. Each row represents a section with a detailed route geometry.connection(..., summary = TRUE)
: A summary of the connections is retrieved, where each connection is represented as one row with a unified and simplified geometry.Request available public transport connections as detailed sections:
connection_section <- connection(
origin = poi[3:4, ],
destination = poi[5:6, ],
summary = FALSE
)
The id
column corresponds to the row of the input locations (origin
and destination
) and the rank
column enumerates the alternative routes. The maximum number of alternatives can be set by the results
parameter. Each row in the returned sf
object corresponds to a route section with a transport mode in a vehicle without a transfer.
id | rank | departure | origin | arrival | destination | mode | category | vehicle | provider | direction | distance | duration |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 2020-12-31 15:54:00 | ORIG | 2020-12-31 16:04:00 | Lausanne, Sallaz | pedestrian | NA | NA | NA | NA | 582 | 600 |
1 | 1 | 2020-12-31 16:04:00 | Lausanne, Sallaz | 2020-12-31 16:14:00 | Lausanne, gare | subway | Train | m2 | Transport publics de la Région Lausannoise | Lausanne, Ouchy-Olympique | 2940 | 600 |
1 | 1 | 2020-12-31 16:14:00 | Lausanne, gare | 2020-12-31 16:19:00 | Lausanne | pedestrian | NA | NA | NA | NA | 300 | 300 |
1 | 1 | 2020-12-31 16:20:00 | Lausanne | 2020-12-31 17:26:00 | Bern | intercityTrain | Intercity Train | IC 1 | Schweizerische Bundesbahnen SBB | St. Gallen | 97091 | 3960 |
1 | 1 | 2020-12-31 17:32:00 | Bern | 2020-12-31 17:43:00 | Kehrsatz Nord | cityTrain | Train | S 3 | BLS AG (bls) | Belp | 8668 | 660 |
1 | 1 | 2020-12-31 17:43:00 | Kehrsatz Nord | 2020-12-31 17:44:00 | DEST | pedestrian | NA | NA | NA | NA | 84 | 60 |
Print the public transport sections on an interactive leaflet map:
if (requireNamespace("mapview", quietly = TRUE)) {
mapview::mapview(connection_section,
zcol = "mode",
layer.name = "Transport mode",
map.types = c("Esri.WorldTopoMap"),
homebutton = FALSE
)
}
Request a summary of the available public transport connections:
connection_summary <- connection(
origin = poi[3:4, ],
destination = poi[5:6, ],
summary = TRUE
)
id | rank | departure | origin | arrival | destination | transfers | modes | categories | vehicles | providers | distance | duration |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 2020-12-31 15:54:00 | Lausanne, Sallaz | 2020-12-31 17:44:00 | Kehrsatz Nord | 2 | pedestrian, subway, pedestrian, intercityTrain, cityTrain, pedestrian | Train, Intercity Train, Train | m2, IC 1, S 3 | Transport publics de la Région Lausannoise, Schweizerische Bundesbahnen SBB, BLS AG (bls) | 109665 | 6180 |
1 | 2 | 2020-12-31 16:17:00 | Lausanne, Sallaz | 2020-12-31 18:14:00 | Kehrsatz Nord | 2 | pedestrian, subway, pedestrian, intercityTrain, cityTrain, pedestrian | Train, Intercity Train, Train | m2, IR 15, S 3 | Transport publics de la Région Lausannoise, Schweizerische Bundesbahnen SBB, BLS AG (bls) | 123653 | 6600 |
2 | 1 | 2020-12-31 15:30:00 | Basel, Kleinhüningen | 2020-12-31 17:15:00 | Zürich HB | 1 | pedestrian, lightRail, pedestrian, intercityTrain, pedestrian | Tram, Intercity Train | 8, 3 | Basler Verkehrsbetriebe, Schweizerische Bundesbahnen SBB | 94821 | 6180 |
2 | 2 | 2020-12-31 15:53:00 | Basel, Kleinhüningen | 2020-12-31 17:41:00 | Zürich HB | 1 | pedestrian, lightRail, pedestrian, intercityTrain, pedestrian | Tram, Intercity Train | 8, IC 3 | Basler Verkehrsbetriebe, Schweizerische Bundesbahnen SBB | 94821 | 6120 |
The function station()
allows to request public transport stations nearby points of interest (POIs). The radius
defines the maximum search distance in meters and results
specifies the maximum number of returned stations. The returned sf
object contains the locations of the stations and the available public transport lines at the station.
stations <- station(
poi = poi,
radius = 500,
results = 5
)
Print the POIs, the radius and stations on an interactive leaflet map:
buffer <-
poi %>%
st_transform(2056) %>%
st_buffer(500) %>%
st_transform(4326)
if (requireNamespace("mapview", quietly = TRUE)) {
m <-
mapview::mapview(poi, alpha.region = 1, col.region = "black",
label = poi$city, layer.name = "POIs",
map.types = c("Esri.WorldTopoMap"), homebutton = FALSE) +
mapview::mapview(stations, col.region = "yellow", alpha = 1,
label = stations$station, layer.name = "Stations",
homebutton = FALSE) +
mapview::mapview(buffer, col.region = "transparent", alpha.region = 0,
layer.name = "Buffer", homebutton = FALSE, legend = FALSE)
m
}