hereR

CRAN status CRAN checks CRAN downloads R build status Codecov test coverage CodeFactor

The hereR package provides an interface to the HERE REST APIs for R: (1) geocode and autosuggest addresses or reverse geocode POIs using the Geocoder API; (2) route directions, travel distance or time matrices and isolines using the Routing API, Matrix Routing API and Isoline Routing API; (3) request real-time traffic flow and incident information from the Traffic API; (4) find public transport connections and nearby stations using the Public Transit API; (5) request intermodal routes using the Intermodal Routing API; (6) get weather forecasts, reports on current weather conditions and astronomical information at a specific location from the Destination Weather API.

Locations, routes and isolines are returned as sf objects.

Installation

You can install the released version of hereR from CRAN with:

install.packages("hereR")

Install the development version from GitHub with:

remotes::install_github("munterfinger/hereR@develop")

Usage

This package requires an API key for a HERE project. The key is set for the current R session and is used to authenticate in the requests to the APIs. A free login and project can be created on developer.here.com. In order to obtain the API key navigate to a project of your choice in the developer portal, select ‘REST: Generate APP’ and then ‘Create API Key’.

To set the API key, please use:

library(hereR)
set_key("<YOUR API KEY>")

Once valid application credentials are created and the key is set in the R session, the APIs can be addressed using the functions shown in the following examples. A more detailed description can be found in the documentation of the functions and the package vignettes.

Geocoding & Search API: Autosuggest and geocode addresses or reverse geocode POIs.

geocode(c("Schweighofstrasse 190, Zurich, Switzerland", "Hardstrasse 48, Zurich, Switzerland"))

autosuggest(c("Schweighofstrasse", "Hardstrasse"))

reverse_geocode(poi)

Routing API: Construct route geometries with elevation (dim = XYZ).

route(poi[1:2, ], poi[3:4, ], transport_mode = "car", traffic = TRUE)

route(poi[1:2, ], poi[3:4, ], transport_mode = "car", traffic = FALSE)

route(poi[1:2, ], poi[3:4, ], transport_mode = "bicycle")

Matrix Routing API: Request a matrix of route summaries.

route_matrix(poi, transport_mode = "car", traffic = TRUE)

route_matrix(
  geocode(c("Schweighofstrasse 190, Zurich, Switzerland", "Hardstrasse 48, Zurich, Switzerland")),
  transport_mode = "bicycle", traffic = FALSE
)

Isoline Routing API: Construct isolines around points (time, distance or consumption).

isoline(poi, range_type = "time", transport_mode = "pedestrian")

isoline(poi, range_type = "distance", transport_mode = "truck")

isoline(poi, range_type = "consumption", transport_mode = "car")

Traffic API: Get real-time traffic flow or incidents in a specific area.

flow(aoi[2, ])

incident(aoi, from = as.POSIXct("2018-01-01 00:00:00"))

Public Transit API: Request public transport connections between points or find stations nearby.

connection(poi[1:2, ], poi[3:4, ])

station(poi, radius = 500)

Intermodal Routing API: Get routes with various combinations of transport modes.

intermodal_route(poi[1:2, ], poi[3:4, ])

Destination Weather API: Request weather observations, forecasts, astronomical information or alerts at specific locations.

weather(poi, product = "observation")

weather(poi, product = "forecast_hourly")

weather(poi, product = "forecast_astronomy")

weather(poi, product = "alerts")

Contributing

References