Learn R Programming

'osrmr'

'osrmr' is a wrapper around the OSRM API (https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md). 'osrmr' works with API versions 4 and 5 and can handle servers that run locally as well as the osrm webserver.

Installation

You can install 'osrmr' from CRAN or github with:

install.packages("osrmr")

# install.packages("devtools")
devtools::install_github("ims-fhs/osrmr")

Examples

Access the OSRM with R using the onlinehost (webserver) of OSRM to:

  • generate coordinates from given coordinates, which are accessible by car with nearest()
  • calculate waytimes and more for specific routes from start- to end-destination with viaroute()
  • decode polylines using a polyline-specific precision with decode_geom()
library(osrmr)
nearest(lat = 47, lng = 8, api_version = 5, localhost = FALSE)
#>        lat      lng
#> 1 47.00008 8.003016
viaroute(lat1 = 47.1, lng1 = 8.1, lat2 = 46.9, lng2 = 8.3, instructions = FALSE,
         api_version = 5, localhost = FALSE)
#> [1] 2637.1

encoded_polyline_precision_5 <- rjson::fromJSON(file = "http://router.project-osrm.org/route/v1/driving/8.0997,47.1002;8.101110,47.10430?steps=false&geometries=polyline")$routes[[1]]$geometry
decode_geom(encoded_polyline_precision_5, precision = 5)
#>        lat     lng
#> 1 47.10020 8.09970
#> 2 47.10099 8.09952
#> 3 47.10161 8.10037
#> 4 47.10171 8.10066
#> 5 47.10215 8.10083
#> 6 47.10234 8.10098
#> 7 47.10287 8.10123
#> 8 47.10322 8.10125
#> 9 47.10430 8.10110

Note

  1. In order to use the localhost of OSRM you need a local build on your device. For more Information on the localhost see https://github.com/Project-OSRM/osrm-backend/wiki/Building-OSRM.
  2. When using the localhost it's recommended to set the path of your local build as environment variable.

For more detailed Information about the components of the 'osrmr' package, check out the vignette.

Copy Link

Version

Install

install.packages('osrmr')

Monthly Downloads

172

Version

0.1.36

License

GPL-3

Maintainer

Adrian Staempfli

Last Published

May 31st, 2021

Functions in osrmr (0.1.36)

nearest_api_v4

nearest accessible position for OSRM API v4
viaroute_api_v5

travel time or full information of a route for OSRM API 5
viaroute

travel time or full information of a route
viaroute_api_v4

travel time or full information of a route for OSRM API 4
server_address

server_address() returns the URL address of the OSRM localhost or OSRM webserver, depending on the value of the variable 'use_localhost'. This is an internal function. The address is used as a part of a OSRM server-request.
make_request

Run one server request for OSRM (online- or localhost)
quit_server

Quit local OSRM server
encoded_string_api_4

encoded_string_api_4: An encoded route to illustrate the 'osrmr::decode_geom()' function. After decoding all points on the route are available as wgs84 coordinates. Decoding varies on the API version of OSRMR. This version is decoded using API v4.
decode_geom

Transform encoded polylines to lat-lng data.frame.
run_server

Start local OSRM server
nearest_api_v5

nearest accessible position for OSRM API v5
nearest

nearest accessible position
encoded_string_api_5

encoded_string_api_5: An encoded route to illustrate the 'osrmr::decode_geom()' function. After decoding all points on the route are available as wgs84 coordinates. Decoding varies on the API version of OSRMR. This version is decoded using API v5.