Regenerate API docs
This commit is contained in:
		
							parent
							
								
									f531a956f5
								
							
						
					
					
						commit
						2a24468267
					
				| @ -1,66 +1,83 @@ | |||||||
| # OSRM | <!-- Generated by documentation.js. Update this documentation by updating the source code. --> | ||||||
| 
 | 
 | ||||||
| The `OSRM` method is the main constructor for creating an OSRM instance. An OSRM instance requires a `.osrm` network, | ### Table of Contents | ||||||
| which is prepared by the OSRM Backend C++ library. |  | ||||||
| 
 | 
 | ||||||
|  | -   [OSRM](#osrm) | ||||||
|  |     -   [route](#route) | ||||||
|  |     -   [nearest](#nearest) | ||||||
|  |     -   [table](#table) | ||||||
|  |     -   [tile](#tile) | ||||||
|  |     -   [match](#match) | ||||||
|  |     -   [trip](#trip) | ||||||
|  | -   [OSRM](#osrm-1) | ||||||
|  |     -   [route](#route-1) | ||||||
|  |     -   [nearest](#nearest-1) | ||||||
|  |     -   [table](#table-1) | ||||||
|  |     -   [tile](#tile-1) | ||||||
|  |     -   [match](#match-1) | ||||||
|  |     -   [trip](#trip-1) | ||||||
|  | -   [Responses](#responses) | ||||||
|  |     -   [Route](#route-2) | ||||||
|  |     -   [RouteLeg](#routeleg) | ||||||
|  |     -   [RouteStep](#routestep) | ||||||
|  |     -   [StepManeuver](#stepmaneuver) | ||||||
|  |     -   [Waypoint](#waypoint) | ||||||
|  | 
 | ||||||
|  | ## OSRM | ||||||
|  | 
 | ||||||
|  | The `OSRM` method is the main constructor for creating an OSRM instance. | ||||||
|  | An OSRM instance requires a `.osrm` dataset, which is prepared by the OSRM toolchain. | ||||||
| You can create such a `.osrm` file by running the OSRM binaries we ship in `node_modules/osrm/lib/binding/` and default | You can create such a `.osrm` file by running the OSRM binaries we ship in `node_modules/osrm/lib/binding/` and default | ||||||
| profiles (e.g. for setting speeds and determining road types to route on) in `node_modules/osrm/profiles/`: | profiles (e.g. for setting speeds and determining road types to route on) in `node_modules/osrm/profiles/`: | ||||||
| 
 | 
 | ||||||
|     node_modules/osrm/lib/binding/osrm-extract data.osm.pbf -p node_modules/osrm/profiles/car.lua |     node_modules/osrm/lib/binding/osrm-extract data.osm.pbf -p node_modules/osrm/profiles/car.lua | ||||||
|     node_modules/osrm/lib/binding/osrm-contract data.osrm |     node_modules/osrm/lib/binding/osrm-contract data.osrm | ||||||
| 
 | 
 | ||||||
| Consult the [osrm-backend](https://github.com/Project-OSRM/osrm-backend) documentation or further details. | Consult the [osrm-backend](https://github.com/Project-OSRM/osrm-backend) documentation for further details. | ||||||
| 
 | 
 | ||||||
| Once you have a complete `network.osrm` file, you can calculate networks in javascript with this library using the | Once you have a complete `network.osrm` file, you can calculate routes in javascript with this object. | ||||||
| methods below. To create an OSRM instance with your network you need to construct an instance like this: |  | ||||||
| 
 | 
 | ||||||
| ```javascript | ```javascript | ||||||
| var osrm = new OSRM('network.osrm'); | var osrm = new OSRM('network.osrm'); | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| #### Methods | **Parameters** | ||||||
| 
 | 
 | ||||||
| | Service                    | Description                                               | | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Options for creating an OSRM object. (optional, default `{shared_memory:true}`) | ||||||
| | -------------------------- | --------------------------------------------------------- | |     -   `options.algorithm` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** The algorithm to use for routing. Can be 'CH', 'CoreCH' or 'MLD'. Default is 'CH'. | ||||||
| | [`osrm.route`](#route)     | shortest path between given coordinates                   | |                Make sure you prepared the dataset with the correct toolchain. | ||||||
| | [`osrm.nearest`](#nearest) | returns the nearest street segment for a given coordinate | |     -   `options.shared_memory` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Connects to the persistent shared memory datastore. | ||||||
| | [`osrm.table`](#table)     | computes distance tables for given coordinates            | |                This requires you to run `osrm-datastore` prior to creating an `OSRM` object. | ||||||
| | [`osrm.match`](#match)     | matches given coordinates to the road network             | |     -   `options.path` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** The path to the `.osrm` files. This is mutually exclusive with setting {options.shared_memory} to true. | ||||||
| | [`osrm.trip`](#trip)       | Compute the shortest trip between given coordinates       | |  | ||||||
| | [`osrm.tile`](#tile)       | Return vector tiles containing debugging info             | |  | ||||||
| 
 | 
 | ||||||
| #### General Options | ### route | ||||||
| 
 |  | ||||||
| Each OSRM method (except for `OSRM.tile()`) has set of general options as well as unique options, outlined below. |  | ||||||
| 
 |  | ||||||
| | Option          | Values                                                  | Description                                                                                            | Format                                                                         | |  | ||||||
| | --------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | |  | ||||||
| | coordinates     | `array` of `coordinate` elements: `[{coordinate}, ...]` | The coordinates this request will use.                                                                 | `array` with `[{lon},{lat}]` values, in decimal degrees                        | |  | ||||||
| | bearings        | `array` of `bearing` elements: `[{bearing}, ...]`       | Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | `null` or `array` with `[{value},{range}]` `integer 0 .. 360,integer 0 .. 180` | |  | ||||||
| | radiuses        | `array` of `radius` elements: `[{radius}, ...]`         | Limits the search to given radius in meters.                                                           | `null` or `double >= 0` or `unlimited` (default)                               | |  | ||||||
| | hints           | `array` of `hint` elements: `[{hint}, ...]`             | Hint to derive position in street network.                                                             | Base64 `string`                                                                | |  | ||||||
| | generate\_hints | `true` (default) or `false`                             | Adds a Hint to the response which can be used in subsequent requests, see `hints` parameter.           | `Boolean`                                                                      | |  | ||||||
| 
 |  | ||||||
| ## route |  | ||||||
| 
 | 
 | ||||||
| Returns the fastest route between two or more coordinates while visiting the waypoints in order. | Returns the fastest route between two or more coordinates while visiting the waypoints in order. | ||||||
| 
 | 
 | ||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the route query. | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the route query. | ||||||
|     -   `options.alternatives` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)]** Search for alternative routes and return as well. _Please note that even if an alternative route is requested, a result cannot be guaranteed._ (optional, default `false`) |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|     -   `options.steps` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)]** Return route steps for each route leg. (optional, default `false`) |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|     -   `options.annotations` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)] or \[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)>]** Return annotations for each route leg for duration, nodes, distance, weight, datasources and/or speed. Annotations can be `false` or `true` (no/full annotations) or an array of strings with `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. (optional, default `false`) |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|     -   `options.geometries` **\[[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Returned route geometry format (influences overview and per step). Can also be `geojson`. (optional, default `polyline`) |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|     -   `options.overview` **\[[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Add overview geometry either `full`, `simplified` according to highest zoom level it could be display on, or not at all (`false`). (optional, default `simplified`) |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|     -   `options.continue_straight` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)]** Forces the route to keep going straight at waypoints and don't do a uturn even if it would be faster. Default value depends on the profile. `null`/`true`/`false` |     -   `options.alternatives` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Search for alternative routes and return as well. | ||||||
|  |         _Please note that even if an alternative route is requested, a result cannot be guaranteed._ (optional, default `false`) | ||||||
|  |     -   `options.steps` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return route steps for each route leg. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return annotations for each route leg. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array with strings of `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. | ||||||
|  |     -   `options.geometries` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returned route geometry format (influences overview and per step). Can also be `geojson`. (optional, default `polyline`) | ||||||
|  |     -   `options.overview` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Add overview geometry either `full`, `simplified` according to highest zoom level it could be display on, or not at all (`false`). (optional, default `simplified`) | ||||||
|  |     -   `options.continue_straight` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Forces the route to keep going straight at waypoints and don't do a uturn even if it would be faster. Default value depends on the profile. | ||||||
|  |                          `null`/`true`/`false` | ||||||
| -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
| 
 | 
 | ||||||
| **Examples** | **Examples** | ||||||
| 
 | 
 | ||||||
| ```javascript | ```javascript | ||||||
| var osrm = new OSRM("berlin-latest.osrm"); | var osrm = new OSRM("berlin-latest.osrm"); | ||||||
| osrm.route({coordinates: [[13.438640,52.519930], [13.415852, 52.513191]]}, function(err, result) { | osrm.route({coordinates: [[52.519930,13.438640], [52.513191,13.415852]]}, function(err, result) { | ||||||
|   if(err) throw err; |   if(err) throw err; | ||||||
|   console.log(result.waypoints); // array of Waypoint objects representing all waypoints in order |   console.log(result.waypoints); // array of Waypoint objects representing all waypoints in order | ||||||
|   console.log(result.routes); // array of Route objects ordered by descending recommendation rank |   console.log(result.routes); // array of Route objects ordered by descending recommendation rank | ||||||
| @ -69,7 +86,7 @@ osrm.route({coordinates: [[13.438640,52.519930], [13.415852, 52.513191]]}, funct | |||||||
| 
 | 
 | ||||||
| Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** An array of [Waypoint](#waypoint) objects representing all waypoints in order AND an array of [`Route`](#route) objects ordered by descending recommendation rank. | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** An array of [Waypoint](#waypoint) objects representing all waypoints in order AND an array of [`Route`](#route) objects ordered by descending recommendation rank. | ||||||
| 
 | 
 | ||||||
| ## nearest | ### nearest | ||||||
| 
 | 
 | ||||||
| Snaps a coordinate to the street network and returns the nearest n matches. | Snaps a coordinate to the street network and returns the nearest n matches. | ||||||
| 
 | 
 | ||||||
| @ -78,7 +95,12 @@ Note: `coordinates` in the general options only supports a single `{longitude},{ | |||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the nearest query. | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the nearest query. | ||||||
|     -   `options.number` **\[[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)]** Number of nearest segments that should be returned. |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|  |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|  |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|  |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|  |     -   `options.number` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Number of nearest segments that should be returned. | ||||||
|         Must be an integer greater than or equal to `1`. (optional, default `1`) |         Must be an integer greater than or equal to `1`. (optional, default `1`) | ||||||
| -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
| 
 | 
 | ||||||
| @ -98,19 +120,26 @@ osrm.nearest(options, function(err, response) { | |||||||
| 
 | 
 | ||||||
| Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `waypoints`. | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `waypoints`. | ||||||
| **`waypoints`**: array of [`Ẁaypoint`](#waypoint) objects sorted by distance to the input coordinate. | **`waypoints`**: array of [`Ẁaypoint`](#waypoint) objects sorted by distance to the input coordinate. | ||||||
| Each object has an additional `distance` property, which is the distance in meters to the supplied |                  Each object has an additional `distance` property, which is the distance in meters to the supplied input coordinate. | ||||||
| input coordinate. |  | ||||||
| 
 | 
 | ||||||
| ## table | ### table | ||||||
| 
 | 
 | ||||||
| Computes duration tables for the given locations. Allows for both symmetric and asymmetric tables. | Computes duration tables for the given locations. Allows for both symmetric and asymmetric | ||||||
|  | tables. | ||||||
| 
 | 
 | ||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the table query. | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the table query. | ||||||
|     -   `options.sources` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)]** An array of `index` elements (`0 <= integer < #coordinates`) to use |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|  |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|  |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|  |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|  |     -   `options.sources` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array of `index` elements (`0 <= integer < #coordinates`) to | ||||||
|  |         use | ||||||
|         location with given index as source. Default is to use all. |         location with given index as source. Default is to use all. | ||||||
|     -   `options.destinations` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)]** An array of `index` elements (`0 <= integer < #coordinates`) to use location with given index as destination. Default is to use all. |     -   `options.destinations` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array of `index` elements (`0 <= integer < | ||||||
|  |         #coordinates`) to use location with given index as destination. Default is to use all. | ||||||
| -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
| 
 | 
 | ||||||
| **Examples** | **Examples** | ||||||
| @ -132,24 +161,25 @@ osrm.table(options, function(err, response) { | |||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `durations`, `sources`, and `destinations`. | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `durations`, `sources`, and `destinations`. | ||||||
| **`durations`**: array of arrays that stores the matrix in row-major order. `durations[i][j]` | **`durations`**: array of arrays that stores the matrix in row-major order. `durations[i][j]` gives the travel time from the i-th waypoint to the j-th waypoint. | ||||||
| gives the travel time from the i-th waypoint to the j-th waypoint. Values are given in seconds. |                  Values are given in seconds. | ||||||
| **`sources`**: array of [`Ẁaypoint`](#waypoint) objects describing all sources in order. | **`sources`**: array of [`Ẁaypoint`](#waypoint) objects describing all sources in order. | ||||||
| **`destinations`**: array of [`Ẁaypoint`](#waypoint) objects describing all destinations in order. | **`destinations`**: array of [`Ẁaypoint`](#waypoint) objects describing all destinations in order. | ||||||
| 
 | 
 | ||||||
| ## tile | ### tile | ||||||
| 
 | 
 | ||||||
| This generates [Mapbox Vector Tiles](https://mapbox.com/vector-tiles) that can be viewed with a | This generates [Mapbox Vector Tiles](https://mapbox.com/vector-tiles) that can be viewed with a | ||||||
| vector-tile capable slippy-map viewer. The tiles contain road geometries and metadata that can | vector-tile capable slippy-map viewer. The tiles contain road geometries and metadata that can | ||||||
| be used to examine the routing graph. The tiles are generated directly from the data in-memory, | be used to examine the routing graph. The tiles are generated directly from the data in-memory, | ||||||
| so are in sync with actual routing results, and let you examine which roads are actually routable, | so are in sync with actual routing results, and let you examine which roads are actually | ||||||
|  | routable, | ||||||
| and what weights they have applied. | and what weights they have applied. | ||||||
| 
 | 
 | ||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `ZXY` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** an array consisting of `x`, `y`, and `z` values representing tile coordinates like | -   `ZXY` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** an array consisting of `x`, `y`, and `z` values representing tile coordinates like | ||||||
|     [wiki.openstreetmap.org/wiki/Slippy_map_tilenames](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames) |            [wiki.openstreetmap.org/wiki/Slippy_map_tilenames](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames) | ||||||
|     and are supported by vector tile viewers like [Mapbox GL JS]\(<https://www.mapbox.com/mapbox-gl-js/api/>. |            and are supported by vector tile viewers like [Mapbox GL JS](https://www.mapbox.com/mapbox-gl-js/api/). | ||||||
| -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
| 
 | 
 | ||||||
| **Examples** | **Examples** | ||||||
| @ -164,7 +194,7 @@ osrm.tile([0, 0, 0], function(err, response) { | |||||||
| 
 | 
 | ||||||
| Returns **[Buffer](https://nodejs.org/api/buffer.html)** contains a Protocol Buffer encoded vector tile. | Returns **[Buffer](https://nodejs.org/api/buffer.html)** contains a Protocol Buffer encoded vector tile. | ||||||
| 
 | 
 | ||||||
| ## match | ### match | ||||||
| 
 | 
 | ||||||
| Map matching matches given GPS points to the road network in the most plausible way. | Map matching matches given GPS points to the road network in the most plausible way. | ||||||
| Please note the request might result multiple sub-traces. Large jumps in the timestamps | Please note the request might result multiple sub-traces. Large jumps in the timestamps | ||||||
| @ -175,15 +205,18 @@ if they can not be matched successfully. | |||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the match query. | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the match query. | ||||||
|     -   `options.steps` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)]** Return route steps for each route. (optional, default `false`) |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|     -   `options.annotations` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)] or \[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)>]** Return annotations for each route leg for duration, nodes, distance, weight, datasources and/or speed. Annotations can be `false` or `true` (no/full annotations) or an array of strings with `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. (optional, default `false`) |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|     -   `options.geometries` **\[[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Returned route geometry format (influences overview |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|         and per step). Can also be `geojson`. (optional, default `polyline`) |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|     -   `options.overview` **\[[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Add overview geometry either `full`, `simplified` |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|         according to highest zoom level it could be display on, or not at all (`false`). (optional, default `simplified`) |     -   `options.steps` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return route steps for each route. (optional, default `false`) | ||||||
|     -   `options.timestamps` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** Timestamp of the input location (integers, UNIX-like timestamp). |     -   `options.annotations` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return annotations for each route leg. (optional, default `false`) | ||||||
|     -   `options.radiuses` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)]** Standard deviation of GPS precision used for map matching. |     -   `options.annotations` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array with strings of `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. | ||||||
|         If applicable use GPS accuracy (`double >= 0`, default `5m`). |     -   `options.geometries` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returned route geometry format (influences overview and per step). Can also be `geojson`. (optional, default `polyline`) | ||||||
|  |     -   `options.overview` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Add overview geometry either `full`, `simplified` according to highest zoom level it could be display on, or not at all (`false`). (optional, default `simplified`) | ||||||
|  |     -   `options.timestamps` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>?** Timestamp of the input location (integers, UNIX-like timestamp). | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Standard deviation of GPS precision used for map matching. If applicable use GPS accuracy (`double >= 0`, default `5m`). | ||||||
| -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
| 
 | 
 | ||||||
| **Examples** | **Examples** | ||||||
| @ -203,69 +236,55 @@ osrm.match(options, function(err, response) { | |||||||
| 
 | 
 | ||||||
| Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `tracepoints` and `matchings`. | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `tracepoints` and `matchings`. | ||||||
| **`tracepoints`** Array of [`Ẁaypoint`](#waypoint) objects representing all points of the trace in order. | **`tracepoints`** Array of [`Ẁaypoint`](#waypoint) objects representing all points of the trace in order. | ||||||
| If the trace point was ommited by map matching because it is an outlier, the entry will be null. Each |                   If the trace point was ommited by map matching because it is an outlier, the entry will be null. | ||||||
| `Waypoint` object includes two additional properties, 1) `matchings_index`: Index to the |                   Each `Waypoint` object includes two additional properties, 1) `matchings_index`: Index to the | ||||||
| [`Route`](#route) object in matchings the sub-trace was matched to, 2) `waypoint_index`: Index of |                   [`Route`](#route) object in matchings the sub-trace was matched to, 2) `waypoint_index`: Index of | ||||||
| the waypoint inside the matched route. |                   the waypoint inside the matched route. | ||||||
| **`matchings`** is an array of [`Route`](#route) objects that | **`matchings`** is an array of [`Route`](#route) objects that assemble the trace. Each `Route` object has an additional `confidence` property, | ||||||
| assemble the trace. Each `Route` object has an additional `confidence` property, which is the confidence of |                 which is the confidence of the matching. float value between `0` and `1`. `1` is very confident that the matching is correct. | ||||||
| the matching. float value between `0` and `1`. `1` is very confident that the matching is correct. |  | ||||||
| 
 | 
 | ||||||
| ## trip | ### trip | ||||||
| 
 | 
 | ||||||
| The trip plugin solves the Traveling Salesman Problem using a greedy heuristic (farthest-insertion algorithm). The returned path does not have to be the fastest path, as TSP is NP-hard it is only an approximation. Note that all input coordinates have to be connected for the trip service to work. | The trip plugin solves the Traveling Salesman Problem using a greedy heuristic | ||||||
| 
 | (farthest-insertion algorithm) for 10 or _ more waypoints and uses brute force for less than 10 | ||||||
| **Parameters**   | waypoints. The returned path does not have to be the shortest path, _ as TSP is NP-hard it is | ||||||
| -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the trip query. | only an approximation. | ||||||
|     -   `options.roundtrip` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)]** Return route is a roundtrip. (optional, default `true`) |  | ||||||
|     -   `options.source` **\[[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Return route starts at `any` coordinate. Can also be `first`. (optional, default `any`) |  | ||||||
|     -   `options.destination` **\[[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Return route ends at `any` coordinate. Can also be `last`. (optional, default `any`) |  | ||||||
|     -   `options.steps` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)]** Return route steps for each route. (optional, default `false`) |  | ||||||
|     -   `options.annotations` **\[[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)] or \[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)>]** Return annotations for each route leg for duration, nodes, distance, weight, datasources and/or speed. Annotations can be `false` or `true` (no/full annotations) or an array of strings with `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. (optional, default `false`) |  | ||||||
|     -   `options.geometries` **\[[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Returned route geometry format (influences overview |  | ||||||
|         and per step). Can also be `geojson`. (optional, default `polyline`) |  | ||||||
|     -   `options.overview` **\[[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** Add overview geometry either `full`, `simplified` (optional, default `simplified`) |  | ||||||
| -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  |  | ||||||
| 
 |  | ||||||
| **Fixing Start and End Points** |  | ||||||
| 
 |  | ||||||
| It is possible to explicitly set the start or end coordinate of the trip. When source is set to `first`, the first coordinate is used as start coordinate of the trip in the output. When destination is set to `last`, the last coordinate will be used as destination of the trip in the returned output. If you specify `any`, any of the coordinates can be used as the first or last coordinate in the output. |  | ||||||
| 
 |  | ||||||
| However, if `source=any&destination=any` the returned round-trip will still start at the first input coordinate by default. |  | ||||||
| 
 | 
 | ||||||
|  | Note that all input coordinates have to be connected for the trip service to work. | ||||||
| Currently, not all combinations of `roundtrip`, `source` and `destination` are supported. | Currently, not all combinations of `roundtrip`, `source` and `destination` are supported. | ||||||
| Right now, the following combinations are possible: | Right now, the following combinations are possible: | ||||||
| 
 | 
 | ||||||
| | roundtrip | source | destination | supported | | | roundtrip | source | destination | supported | | ||||||
| | :-- | :-- | :-- | :-- | | | :-------- | :----- | :---------- | :-------- | | ||||||
| | true | first | last | **yes** |  | | true      | first  | last        | **yes**   | | ||||||
| | true | first | any | **yes** | | | true      | first  | any         | **yes**   | | ||||||
| | true | any | last | **yes** | | | true      | any    | last        | **yes**   | | ||||||
| | true | any | any | **yes** | | | true      | any    | any         | **yes**   | | ||||||
| | false | first | last | **yes** | | | false     | first  | last        | **yes**   | | ||||||
| | false | first | any | no | | | false     | first  | any         | no        | | ||||||
| | false | any | last | no | | | false     | any    | last        | no        | | ||||||
| | false | any | any | no | | | false     | any    | any         | no        | | ||||||
|  | 
 | ||||||
|  | **Parameters** | ||||||
|  | 
 | ||||||
|  | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the trip query. | ||||||
|  |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|  |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|  |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|  |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|  |     -   `options.steps` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return route steps for each route. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return annotations for each route leg. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array with strings of `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. | ||||||
|  |     -   `options.geometries` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returned route geometry format (influences overview and per step). Can also be `geojson`. (optional, default `polyline`) | ||||||
|  |     -   `options.overview` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Add overview geometry either `full`, `simplified` (optional, default `simplified`) | ||||||
|  |     -   `options.roundtrip` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return route is a roundtrip. (optional, default `true`) | ||||||
|  |     -   `options.source` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Return route starts at `any` or `first` coordinate. (optional, default `any`) | ||||||
|  |     -   `options.destination` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Return route ends at `any` or `last` coordinate. (optional, default `any`) | ||||||
|  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
| 
 | 
 | ||||||
| **Examples** | **Examples** | ||||||
| 
 | 
 | ||||||
| Roundtrip Request |  | ||||||
| ```javascript |  | ||||||
| var osrm = new OSRM('network.osrm'); |  | ||||||
| var options = { |  | ||||||
|   coordinates: [ |  | ||||||
|     [13.36761474609375, 52.51663871100423], |  | ||||||
|     [13.374481201171875, 52.506191342034576] |  | ||||||
|   ] |  | ||||||
| } |  | ||||||
| osrm.trip(options, function(err, response) { |  | ||||||
|   if (err) throw err; |  | ||||||
|   console.log(response.waypoints); // array of Waypoint objects |  | ||||||
|   console.log(response.trips); // array of Route objects |  | ||||||
| }); |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| Non Roundtrip Request |  | ||||||
| ```javascript | ```javascript | ||||||
| var osrm = new OSRM('network.osrm'); | var osrm = new OSRM('network.osrm'); | ||||||
| var options = { | var options = { | ||||||
| @ -285,49 +304,324 @@ osrm.trip(options, function(err, response) { | |||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `waypoints` and `trips`. | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `waypoints` and `trips`. | ||||||
| **`waypoints`**: an array of [`Ẁaypoint`](#waypoint) objects representing all waypoints in input order. | **`waypoints`**: an array of [`Waypoint`](#waypoint) objects representing all waypoints in input order. | ||||||
| Each Waypoint object has the following additional properties, 1) `trips_index`: index to trips of the |                  Each Waypoint object has the following additional properties, | ||||||
| sub-trip the point was matched to, and 2) `waypoint_index`: index of the point in the trip. |                  1) `trips_index`: index to trips of the sub-trip the point was matched to, and | ||||||
|  |                  2) `waypoint_index`: index of the point in the trip. | ||||||
| **`trips`**: an array of [`Route`](#route) objects that assemble the trace. | **`trips`**: an array of [`Route`](#route) objects that assemble the trace. | ||||||
| 
 | 
 | ||||||
| # Responses | ## OSRM | ||||||
|  | 
 | ||||||
|  | Constructs an `OSRM` object directly from a path. | ||||||
|  | 
 | ||||||
|  | **Parameters** | ||||||
|  | 
 | ||||||
|  | -   `path` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** The path to the `.osrm` files. | ||||||
|  | 
 | ||||||
|  | ### route | ||||||
|  | 
 | ||||||
|  | Returns the fastest route between two or more coordinates while visiting the waypoints in order. | ||||||
|  | 
 | ||||||
|  | **Parameters** | ||||||
|  | 
 | ||||||
|  | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the route query. | ||||||
|  |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|  |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|  |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|  |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|  |     -   `options.alternatives` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Search for alternative routes and return as well. | ||||||
|  |         _Please note that even if an alternative route is requested, a result cannot be guaranteed._ (optional, default `false`) | ||||||
|  |     -   `options.steps` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return route steps for each route leg. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return annotations for each route leg. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array with strings of `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. | ||||||
|  |     -   `options.geometries` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returned route geometry format (influences overview and per step). Can also be `geojson`. (optional, default `polyline`) | ||||||
|  |     -   `options.overview` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Add overview geometry either `full`, `simplified` according to highest zoom level it could be display on, or not at all (`false`). (optional, default `simplified`) | ||||||
|  |     -   `options.continue_straight` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Forces the route to keep going straight at waypoints and don't do a uturn even if it would be faster. Default value depends on the profile. | ||||||
|  |                          `null`/`true`/`false` | ||||||
|  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
|  | 
 | ||||||
|  | **Examples** | ||||||
|  | 
 | ||||||
|  | ```javascript | ||||||
|  | var osrm = new OSRM("berlin-latest.osrm"); | ||||||
|  | osrm.route({coordinates: [[52.519930,13.438640], [52.513191,13.415852]]}, function(err, result) { | ||||||
|  |   if(err) throw err; | ||||||
|  |   console.log(result.waypoints); // array of Waypoint objects representing all waypoints in order | ||||||
|  |   console.log(result.routes); // array of Route objects ordered by descending recommendation rank | ||||||
|  | }); | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** An array of [Waypoint](#waypoint) objects representing all waypoints in order AND an array of [`Route`](#route) objects ordered by descending recommendation rank. | ||||||
|  | 
 | ||||||
|  | ### nearest | ||||||
|  | 
 | ||||||
|  | Snaps a coordinate to the street network and returns the nearest n matches. | ||||||
|  | 
 | ||||||
|  | Note: `coordinates` in the general options only supports a single `{longitude},{latitude}` entry. | ||||||
|  | 
 | ||||||
|  | **Parameters** | ||||||
|  | 
 | ||||||
|  | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the nearest query. | ||||||
|  |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|  |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|  |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|  |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|  |     -   `options.number` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Number of nearest segments that should be returned. | ||||||
|  |         Must be an integer greater than or equal to `1`. (optional, default `1`) | ||||||
|  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
|  | 
 | ||||||
|  | **Examples** | ||||||
|  | 
 | ||||||
|  | ```javascript | ||||||
|  | var osrm = new OSRM('network.osrm'); | ||||||
|  | var options = { | ||||||
|  |   coordinates: [[13.388860,52.517037]], | ||||||
|  |   number: 3, | ||||||
|  |   bearings: [[0,20]] | ||||||
|  | }; | ||||||
|  | osrm.nearest(options, function(err, response) { | ||||||
|  |   console.log(response.waypoints); // array of Waypoint objects | ||||||
|  | }); | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `waypoints`. | ||||||
|  | **`waypoints`**: array of [`Ẁaypoint`](#waypoint) objects sorted by distance to the input coordinate. | ||||||
|  |                  Each object has an additional `distance` property, which is the distance in meters to the supplied input coordinate. | ||||||
|  | 
 | ||||||
|  | ### table | ||||||
|  | 
 | ||||||
|  | Computes duration tables for the given locations. Allows for both symmetric and asymmetric | ||||||
|  | tables. | ||||||
|  | 
 | ||||||
|  | **Parameters** | ||||||
|  | 
 | ||||||
|  | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the table query. | ||||||
|  |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|  |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|  |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|  |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|  |     -   `options.sources` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array of `index` elements (`0 <= integer < #coordinates`) to | ||||||
|  |         use | ||||||
|  |         location with given index as source. Default is to use all. | ||||||
|  |     -   `options.destinations` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array of `index` elements (`0 <= integer < | ||||||
|  |         #coordinates`) to use location with given index as destination. Default is to use all. | ||||||
|  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
|  | 
 | ||||||
|  | **Examples** | ||||||
|  | 
 | ||||||
|  | ```javascript | ||||||
|  | var osrm = new OSRM('network.osrm'); | ||||||
|  | var options = { | ||||||
|  |   coordinates: [ | ||||||
|  |     [13.388860,52.517037], | ||||||
|  |     [13.397634,52.529407], | ||||||
|  |     [13.428555,52.523219] | ||||||
|  |   ] | ||||||
|  | }; | ||||||
|  | osrm.table(options, function(err, response) { | ||||||
|  |   console.log(response.durations); // array of arrays, matrix in row-major order | ||||||
|  |   console.log(response.sources); // array of Waypoint objects | ||||||
|  |   console.log(response.destinations); // array of Waypoint objects | ||||||
|  | }); | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `durations`, `sources`, and `destinations`. | ||||||
|  | **`durations`**: array of arrays that stores the matrix in row-major order. `durations[i][j]` gives the travel time from the i-th waypoint to the j-th waypoint. | ||||||
|  |                  Values are given in seconds. | ||||||
|  | **`sources`**: array of [`Ẁaypoint`](#waypoint) objects describing all sources in order. | ||||||
|  | **`destinations`**: array of [`Ẁaypoint`](#waypoint) objects describing all destinations in order. | ||||||
|  | 
 | ||||||
|  | ### tile | ||||||
|  | 
 | ||||||
|  | This generates [Mapbox Vector Tiles](https://mapbox.com/vector-tiles) that can be viewed with a | ||||||
|  | vector-tile capable slippy-map viewer. The tiles contain road geometries and metadata that can | ||||||
|  | be used to examine the routing graph. The tiles are generated directly from the data in-memory, | ||||||
|  | so are in sync with actual routing results, and let you examine which roads are actually | ||||||
|  | routable, | ||||||
|  | and what weights they have applied. | ||||||
|  | 
 | ||||||
|  | **Parameters** | ||||||
|  | 
 | ||||||
|  | -   `ZXY` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** an array consisting of `x`, `y`, and `z` values representing tile coordinates like | ||||||
|  |            [wiki.openstreetmap.org/wiki/Slippy_map_tilenames](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames) | ||||||
|  |            and are supported by vector tile viewers like [Mapbox GL JS](https://www.mapbox.com/mapbox-gl-js/api/). | ||||||
|  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
|  | 
 | ||||||
|  | **Examples** | ||||||
|  | 
 | ||||||
|  | ```javascript | ||||||
|  | var osrm = new OSRM('network.osrm'); | ||||||
|  | osrm.tile([0, 0, 0], function(err, response) { | ||||||
|  |   if (err) throw err; | ||||||
|  |   fs.writeFileSync('./tile.vector.pbf', response); // write the buffer to a file | ||||||
|  | }); | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Returns **[Buffer](https://nodejs.org/api/buffer.html)** contains a Protocol Buffer encoded vector tile. | ||||||
|  | 
 | ||||||
|  | ### match | ||||||
|  | 
 | ||||||
|  | Map matching matches given GPS points to the road network in the most plausible way. | ||||||
|  | Please note the request might result multiple sub-traces. Large jumps in the timestamps | ||||||
|  | (>60s) or improbable transitions lead to trace splits if a complete matching could | ||||||
|  | not be found. The algorithm might not be able to match all points. Outliers are removed | ||||||
|  | if they can not be matched successfully. | ||||||
|  | 
 | ||||||
|  | **Parameters** | ||||||
|  | 
 | ||||||
|  | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the match query. | ||||||
|  |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|  |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|  |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|  |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|  |     -   `options.steps` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return route steps for each route. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return annotations for each route leg. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array with strings of `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. | ||||||
|  |     -   `options.geometries` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returned route geometry format (influences overview and per step). Can also be `geojson`. (optional, default `polyline`) | ||||||
|  |     -   `options.overview` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Add overview geometry either `full`, `simplified` according to highest zoom level it could be display on, or not at all (`false`). (optional, default `simplified`) | ||||||
|  |     -   `options.timestamps` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>?** Timestamp of the input location (integers, UNIX-like timestamp). | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Standard deviation of GPS precision used for map matching. If applicable use GPS accuracy (`double >= 0`, default `5m`). | ||||||
|  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
|  | 
 | ||||||
|  | **Examples** | ||||||
|  | 
 | ||||||
|  | ```javascript | ||||||
|  | var osrm = new OSRM('network.osrm'); | ||||||
|  | var options = { | ||||||
|  |     coordinates: [[13.393252,52.542648],[13.39478,52.543079],[13.397389,52.542107]], | ||||||
|  |     timestamps: [1424684612, 1424684616, 1424684620] | ||||||
|  | }; | ||||||
|  | osrm.match(options, function(err, response) { | ||||||
|  |     if (err) throw err; | ||||||
|  |     console.log(response.tracepoints); // array of Waypoint objects | ||||||
|  |     console.log(response.matchings); // array of Route objects | ||||||
|  | }); | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `tracepoints` and `matchings`. | ||||||
|  | **`tracepoints`** Array of [`Ẁaypoint`](#waypoint) objects representing all points of the trace in order. | ||||||
|  |                   If the trace point was ommited by map matching because it is an outlier, the entry will be null. | ||||||
|  |                   Each `Waypoint` object includes two additional properties, 1) `matchings_index`: Index to the | ||||||
|  |                   [`Route`](#route) object in matchings the sub-trace was matched to, 2) `waypoint_index`: Index of | ||||||
|  |                   the waypoint inside the matched route. | ||||||
|  | **`matchings`** is an array of [`Route`](#route) objects that assemble the trace. Each `Route` object has an additional `confidence` property, | ||||||
|  |                 which is the confidence of the matching. float value between `0` and `1`. `1` is very confident that the matching is correct. | ||||||
|  | 
 | ||||||
|  | ### trip | ||||||
|  | 
 | ||||||
|  | The trip plugin solves the Traveling Salesman Problem using a greedy heuristic | ||||||
|  | (farthest-insertion algorithm) for 10 or _ more waypoints and uses brute force for less than 10 | ||||||
|  | waypoints. The returned path does not have to be the shortest path, _ as TSP is NP-hard it is | ||||||
|  | only an approximation. | ||||||
|  | 
 | ||||||
|  | Note that all input coordinates have to be connected for the trip service to work. | ||||||
|  | Currently, not all combinations of `roundtrip`, `source` and `destination` are supported. | ||||||
|  | Right now, the following combinations are possible: | ||||||
|  | 
 | ||||||
|  | | roundtrip | source | destination | supported | | ||||||
|  | | :-------- | :----- | :---------- | :-------- | | ||||||
|  | | true      | first  | last        | **yes**   | | ||||||
|  | | true      | first  | any         | **yes**   | | ||||||
|  | | true      | any    | last        | **yes**   | | ||||||
|  | | true      | any    | any         | **yes**   | | ||||||
|  | | false     | first  | last        | **yes**   | | ||||||
|  | | false     | first  | any         | no        | | ||||||
|  | | false     | any    | last        | no        | | ||||||
|  | | false     | any    | any         | no        | | ||||||
|  | 
 | ||||||
|  | **Parameters** | ||||||
|  | 
 | ||||||
|  | -   `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object literal containing parameters for the trip query. | ||||||
|  |     -   `options.coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** The coordinates this request will use, coordinates as `[{lon},{lat}]` values, in decimal degrees. | ||||||
|  |     -   `options.bearings` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the search to segments with given bearing in degrees towards true north in clockwise direction. | ||||||
|  |                                           Can be `null` or an array of `[{value},{range}]` with `integer 0 .. 360,integer 0 .. 180`. | ||||||
|  |     -   `options.radiuses` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Limits the coordinate snapping to streets in the given radius in meters. Can be `null` or `double >= 0` or `unlimited` (default). | ||||||
|  |     -   `options.hints` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** Hints for the coordinate snapping. Array of base64 encoded strings. | ||||||
|  |     -   `options.steps` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return route steps for each route. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return annotations for each route leg. (optional, default `false`) | ||||||
|  |     -   `options.annotations` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)?** An array with strings of `duration`, `nodes`, `distance`, `weight`, `datasources`, `speed`. | ||||||
|  |     -   `options.geometries` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returned route geometry format (influences overview and per step). Can also be `geojson`. (optional, default `polyline`) | ||||||
|  |     -   `options.overview` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Add overview geometry either `full`, `simplified` (optional, default `simplified`) | ||||||
|  |     -   `options.roundtrip` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Return route is a roundtrip. (optional, default `true`) | ||||||
|  |     -   `options.source` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Return route starts at `any` or `first` coordinate. (optional, default `any`) | ||||||
|  |     -   `options.destination` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Return route ends at `any` or `last` coordinate. (optional, default `any`) | ||||||
|  | -   `callback` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)**  | ||||||
|  | 
 | ||||||
|  | **Examples** | ||||||
|  | 
 | ||||||
|  | ```javascript | ||||||
|  | var osrm = new OSRM('network.osrm'); | ||||||
|  | var options = { | ||||||
|  |   coordinates: [ | ||||||
|  |     [13.36761474609375, 52.51663871100423], | ||||||
|  |     [13.374481201171875, 52.506191342034576] | ||||||
|  |   ], | ||||||
|  |   source: "first", | ||||||
|  |   destination: "last", | ||||||
|  |   roundtrip: false | ||||||
|  | } | ||||||
|  | osrm.trip(options, function(err, response) { | ||||||
|  |   if (err) throw err; | ||||||
|  |   console.log(response.waypoints); // array of Waypoint objects | ||||||
|  |   console.log(response.trips); // array of Route objects | ||||||
|  | }); | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** containing `waypoints` and `trips`. | ||||||
|  | **`waypoints`**: an array of [`Waypoint`](#waypoint) objects representing all waypoints in input order. | ||||||
|  |                  Each Waypoint object has the following additional properties, | ||||||
|  |                  1) `trips_index`: index to trips of the sub-trip the point was matched to, and | ||||||
|  |                  2) `waypoint_index`: index of the point in the trip. | ||||||
|  | **`trips`**: an array of [`Route`](#route) objects that assemble the trace. | ||||||
|  | 
 | ||||||
|  | ## Responses | ||||||
| 
 | 
 | ||||||
| Responses | Responses | ||||||
| 
 | 
 | ||||||
| ## Route | ### Route | ||||||
| 
 | 
 | ||||||
| Represents a route through (potentially multiple) waypoints. | Represents a route through (potentially multiple) waypoints. | ||||||
| 
 | 
 | ||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `exteral` **documentation** in [`osrm-backend`](https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md#route) | -   `exteral` **documentation** in | ||||||
|  |     [`osrm-backend`](../http.md#route) | ||||||
| 
 | 
 | ||||||
| ## RouteLeg | ### RouteLeg | ||||||
| 
 | 
 | ||||||
| Represents a route between two waypoints. | Represents a route between two waypoints. | ||||||
| 
 | 
 | ||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `exteral` **documentation** in [`osrm-backend`](https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md#routeleg) | -   `exteral` **documentation** in | ||||||
|  |     [`osrm-backend`](../http.md#routeleg) | ||||||
| 
 | 
 | ||||||
| ## RouteStep | ### RouteStep | ||||||
| 
 | 
 | ||||||
| A step consists of a maneuver such as a turn or merge, followed by a distance of travel along a single way to the subsequent step. | A step consists of a maneuver such as a turn or merge, followed by a distance of travel along a | ||||||
|  | single way to the subsequent step. | ||||||
| 
 | 
 | ||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `exteral` **documentation** in [`osrm-backend`](https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md#routestep) | -   `exteral` **documentation** in | ||||||
|  |     [`osrm-backend`](https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md#routestep) | ||||||
| 
 | 
 | ||||||
| ## StepManeuver | ### StepManeuver | ||||||
| 
 | 
 | ||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `exteral` **documentation** in [`osrm-backend`](https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md#stepmanuever) | -   `exteral` **documentation** in | ||||||
|  |     [`osrm-backend`](https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md#stepmaneuver) | ||||||
| 
 | 
 | ||||||
| ## Waypoint | ### Waypoint | ||||||
| 
 | 
 | ||||||
| Object used to describe waypoint on a route. | Object used to describe waypoint on a route. | ||||||
| 
 | 
 | ||||||
| **Parameters** | **Parameters** | ||||||
| 
 | 
 | ||||||
| -   `exteral` **documentation** in [`osrm-backend`](https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md#waypoint) | -   `exteral` **documentation** in | ||||||
|  |     [`osrm-backend`](https://github.com/Project-OSRM/osrm-backend/blob/master/docs/http.md#waypoint) | ||||||
|  | |||||||
| @ -14,7 +14,7 @@ babel -V >/dev/null 2>&1 || { echo >&2 "Can't find babel.  Add node_modules/.bin | |||||||
| browserify --help >/dev/null 2>&1 || { echo >&2 "Can't find browserify.  Add node_modules/.bin to your path, or run via \"npm run\""; exit 1; } | browserify --help >/dev/null 2>&1 || { echo >&2 "Can't find browserify.  Add node_modules/.bin to your path, or run via \"npm run\""; exit 1; } | ||||||
| uglifyjs -V >/dev/null 2>&1 || { echo >&2 "Can't find uglifyjs.  Add node_modules/.bin to your path, or run via \"npm run\""; exit 1; } | uglifyjs -V >/dev/null 2>&1 || { echo >&2 "Can't find uglifyjs.  Add node_modules/.bin to your path, or run via \"npm run\""; exit 1; } | ||||||
| 
 | 
 | ||||||
| #documentation build src/nodejs/node_osrm.cpp --polyglot -f md -o docs/nodejs/api.md | documentation build src/nodejs/node_osrm.cpp --polyglot -f md -o docs/nodejs/api.md | ||||||
| 
 | 
 | ||||||
| # Clean up previous version | # Clean up previous version | ||||||
| rm -rf build/docs | rm -rf build/docs | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user