R/results_directions.R

Defines functions iterate_access_result.list iterate_access_result.character iterate_access_result direction_polyline direction_points direction_steps direction_legs direction_routes direction_instructions

Documented in direction_instructions direction_legs direction_points direction_polyline direction_routes direction_steps

#' @describeIn access_result the instructions from a directions query
#' @export
direction_instructions <- function(res) {
  ## instructions can be nested
  iterate_access_result(
    .access_result(resultType(res), "instructions")
    , elem= "[[c('html_instructions')]]"
  )
}

#' @describeIn access_result the routes from a directions query
#' @export
direction_routes <- function(res) .access_result(resultType(res), "routes")

#' @describeIn access_result the legs from a directions query
#' @export
direction_legs <- function(res) .access_result(resultType(res), "legs")

#' @describeIn access_result the steps from a directions query
#' @export
direction_steps <- function(res) .access_result(resultType(res), "steps")

#' @describeIn access_result the points from a directions query
#' @export
direction_points <- function(res) {
  iterate_access_result(
    .access_result(resultType(res), "points")
    , elem = "[[c('polyline','points')]]"
  )
}

#' @describeIn access_result the encoded polyline from a direction query
#' @export
direction_polyline <- function(res) .access_result(resultType(res), "polyline")



## iterate results
iterate_access_result <- function( ar, elem ) UseMethod("iterate_access_result")

#' @export
iterate_access_result.character <- function( ar, ... ) return( ar )

#' @export
iterate_access_result.list <- function( ar, elem ) {
  res <- c()
  for ( i in seq_len( length( ar ) ) ) {
    txt <- paste0("ar[[i]]",elem)
    res <- c(res, eval(parse(text = txt)) )
  }
  return(res)
}

Try the googleway package in your browser

Any scripts or data that you put into this service are public.

googleway documentation built on Aug. 22, 2023, 9:13 a.m.