The Roads API takes up to 100 independent
coordinates, and returns the closest road segment for each point. The points
passed don't need to be part of a continuous path.

If you are working with sequential GPS points, use [Snap to Roads](https://developers.google.com/maps/documentation/roads/snap.md.txt).

## Requests

A request to nearest roads must be sent using HTTPS, and takes the following
form:

```
https://roads.googleapis.com/v1/nearestRoads?parameters&key=YOUR_API_KEY
```

## Required parameters

### points


The points to be snapped. The points parameter accepts a list of
latitude/longitude pairs. Separate latitude and longitude values with
commas. Separate coordinates with the pipe character: "\|". For example:
`points=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796`.

## Examples

The following request returns a set of road segments based on the specified
list of coordinates.

### URL

```
https://roads.googleapis.com/v1/nearestRoads
  ?points=60.170880%2C24.942795%7C60.170879%2C24.942796%7C60.170877%2C24.942796
  &key=YOUR_API_KEY
```

### curl

```
curl -L -X GET 'https://roads.googleapis.com/v1/nearestRoads?points=60.170880%2C24.942795%7C60.170879%2C24.942796%7C60.170877%2C24.942796&key=YOUR_API_KEY'
```

## Responses

For each valid request, the Roads API will return a response in
the format indicated within the request URL.

```json
{
  "snappedPoints":
    [
      {
        "location":
          { "latitude": 60.170878428876755, "longitude": 24.94269540970182 },
        "originalIndex": 0,
        "placeId": "ChIJfVFHrM0LkkYRBzUQos_jR5w",
      },
      {
        "location":
          { "latitude": 60.17087741412199, "longitude": 24.942695474405202 },
        "originalIndex": 1,
        "placeId": "ChIJfVFHrM0LkkYRBzUQos_jR5w",
      },
      {
        "location":
          { "latitude": 60.170875416131736, "longitude": 24.942695601802203 },
        "originalIndex": 2,
        "placeId": "ChIJfVFHrM0LkkYRBzUQos_jR5w",
      },
    ],
}
```

The response uses the following schema.

### NearestRoadsResponse

| Field | Required | Type | Description |
|:---|---|---|---|
| #### `snappedPoints` | optional | Array\<[SnappedPoint](https://developers.google.com/maps/documentation/roads/nearest.md.txt#SnappedPoint "SnappedPoint")\> | An array of snapped points. Sometimes containing several snapped points for the same point with differing placeId or location. See [SnappedPoint](https://developers.google.com/maps/documentation/roads/nearest.md.txt#SnappedPoint) for more information. |

### SnappedPoint

| Field | Required | Type | Description |
|:---|---|---|---|
| #### `location` | **required** | [LatitudeLongitudeLiteral](https://developers.google.com/maps/documentation/roads/nearest.md.txt#LatitudeLongitudeLiteral "LatitudeLongitudeLiteral") | See [LatitudeLongitudeLiteral](https://developers.google.com/maps/documentation/roads/nearest.md.txt#LatitudeLongitudeLiteral "LatitudeLongitudeLiteral") for more information. |
| #### `placeId` | **required** | string | A unique identifier for a place. All place IDs returned by the Roads API correspond to road segments. |
| #### `originalIndex` | optional | number | An integer that indicates the corresponding value in the original request. Each value in the request should map to a snapped value in the response. However, if you've set interpolate=true or if you're using nearest roads, then it's possible that the response will contain more coordinates than the request. Interpolated values will not have an `originalIndex`. These values are indexed from `0`, so a point with an originalIndex of `4` will be the snapped value of the 5th latitude/longitude passed to the path parameter. Nearest Roads points may contain several points for single coordinates with differing location or placeId. |

### LatitudeLongitudeLiteral


An object describing a specific location with Latitude and Longitude in
decimal degrees.

| Field | Required | Type | Description |
|:---|---|---|---|
| #### `latitude` | **required** | number | Latitude in decimal degrees |
| #### `longitude` | **required** | number | Longitude in decimal degrees |