Get Polygons of Isochrones
Based on osrmTable, this function buids polygons
of isochrones.
osrmIsochrone(
loc,
breaks = seq(from = 0, to = 60, length.out = 7),
exclude = NULL,
res = 30,
returnclass = "sp",
osrm.server = getOption("osrm.server"),
osrm.profile = getOption("osrm.profile")
)loc |
a numeric vector of longitude and latitude (WGS84), an sf object, a SpatialPointsDataFrame or a SpatialPolygonsDataFrame of the origine point. |
breaks |
a numeric vector of isochrone values (in minutes). |
exclude |
pass an optional "exclude" request option to the OSRM API. |
res |
number of points used to compute isochrones, one side of the square grid, the total number of points will be res*res. |
returnclass |
class of the returned polygons. Either "sp" of "sf". |
osrm.server |
the base URL of the routing server. getOption("osrm.server") by default. |
osrm.profile |
the routing profile to use, e.g. "car", "bike" or "foot" (when using the routing.openstreetmap.de test server). getOption("osrm.profile") by default. |
A SpatialPolygonsDateFrame or an sf MULTIPOLYGON of isochrones is returned. The data frame of the output contains four fields: id (id of each polygon), min and max (minimum and maximum breaks of the polygon), center (central values of classes).
## Not run:
# Load data
library(sf)
data("berlin")
# Get isochones with lon/lat coordinates
iso <- osrmIsochrone(loc = c(13.43,52.47), breaks = seq(0,14,2),
returnclass="sf")
plot(st_geometry(iso), col = c('grey80','grey60','grey50',
'grey40','grey30','grey20'))
# Map
if(require("mapsf")){
breaks <- sort(c(unique(iso$min), max(iso$max)))
mapsf::mf_map(x = iso, var = "center", type = "choro",
breaks = breaks, pal = "Greens",
border = NA, leg_pos = "topleft",
leg_frame = TRUE, leg_title = "Isochrones\n(min)")
}
# Get isochones with an sf POINT
iso2 <- osrmIsochrone(loc = apotheke.sf[10,], returnclass="sf",
breaks = seq(from = 0, to = 16, by = 2))
# Map
if(require("mapsf")){
breaks2 <- sort(c(unique(iso2$min), max(iso2$max)))
mapsf::mf_map(x = iso2, var = "center", type = "choro",
breaks = breaks2, pal = "Blues",
border = NA, leg_pos = "topleft", leg_val_rnd = 0,
leg_frame = TRUE, leg_title = "Isochrones\n(min)")
}
## End(Not run)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.