R/mp_get_routes.R
mp_get_routes.Rd
Extract *routes* from Google Maps Directions API response
mp_get_routes(doc)
XML document with Google Maps Directions API response
Line layer (class sf
) representing routes.
When document contains no routes ("ZERO_RESULTS" status), the function returns an empty line layer with NA
in all fields.
library(xml2)
doc = as_xml_document(response_directions_driving)
r = mp_get_routes(doc)
plot(r)
#> Warning: plotting the first 10 out of 11 attributes; use max.plot = 11 to plot all
#> Warning: no non-missing arguments to min; returning Inf
#> Warning: no non-missing arguments to max; returning -Inf
#> Warning: no non-missing arguments to min; returning Inf
#> Warning: no non-missing arguments to max; returning -Inf
#> Warning: no non-missing arguments to min; returning Inf
#> Warning: no non-missing arguments to max; returning -Inf
doc = as_xml_document(response_directions_transit)
r = mp_get_routes(doc)
plot(r)
#> Warning: plotting the first 10 out of 11 attributes; use max.plot = 11 to plot all
#> Warning: no non-missing arguments to min; returning Inf
#> Warning: no non-missing arguments to max; returning -Inf
#> Warning: no non-missing arguments to min; returning Inf
#> Warning: no non-missing arguments to max; returning -Inf
if (FALSE) {
# Text file with API key
key = readLines("~/key")
# Transit example
doc = mp_directions(
origin = c(34.81127, 31.89277),
destination = c(34.781107, 32.085003),
mode = "transit",
alternatives = TRUE,
key = key
)
r = mp_get_routes(doc)
plot(r)
# Duration in traffic
doc = mp_directions(
origin = c(34.81127, 31.89277),
destination = c(34.781107, 32.085003),
departure_time = Sys.time(),
alternatives = TRUE,
key = key
)
r = mp_get_routes(doc)
plot(r)
# Using waypoints
doc = mp_directions(
origin = c(34.81127, 31.89277),
waypoints = rbind(c(35.01582, 31.90020), c(34.84246, 31.85356)),
destination = c(34.781107, 32.085003),
key = key
)
r = mp_get_routes(doc)
plot(r)
}