

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 了解如何使用 SnapToRoads
<a name="snap-to-roads-how-to"></a>

 本主题介绍了如何使用 `SnapToRoads` 将 GPS 轨迹与道路网络对齐，从而提高导航和车队管理应用程序的定位精度。此 API 通过将坐标与距离最近的路段对齐来纠正 GPS 漂移和信号丢失，同时还遵守出行模式限制。示例展示了其实际用途，例如叠加 GPS 轨迹、填补数据空白以及降低噪音以便更清晰地呈现路线。

**Topics**
+ [如何将 GPS 轨迹与道路网络匹配](how-to-match-gps-traces.md)

# 如何将 GPS 轨迹与道路网络匹配
<a name="how-to-match-gps-traces"></a>

SnapToRoads API 允许您将 GPS 轨迹与道路网络进行匹配。GPS 轨迹包括使用 GPS 设备记录的位置和元数据（例如时间戳、速度和航向角）。这些轨迹往往具有一定的误差幅度，因此难以直接用于分析和可视化操作。

SnapToRoads 在匹配轨迹时会考虑指定出行模式所涉及的法律和时间限制。如果轨迹明显表明存在违反限制的情况，则会保留实际所走的路线。

## 潜在使用案例
<a name="potential-use"></a>
+ **将 GPS 轨迹叠加到最有可能行驶的道路上：**此功能有助于将 GPS 数据与道路网络上最准确的路径对齐，从而实现更清晰的数据可视化效果。
+ **填补 GPS 轨迹中的空缺部分：**SnapToRoads 可通过将坐标与路段对齐来填补空缺部分，从而为应用程序创建一个更连续、更有用的数据集。
+ **滤除噪声和异常值：**通过与距离最近的道路对齐，此 API 可以帮助剔除异常值并实现 GPS 降噪，从而提高分析数据的可靠性。

## 示例
<a name="examples"></a>

### 使用汽车模式匹配 GPS 轨迹
<a name="match-gps-car-mode"></a>

------
#### [ Sample request ]

```
{
  "TracePoints": [
    {
      "Position": [8.53404,50.16364],
      "Timestamp": "2024-05-22T18:13:42Z"
    },
    {
      "Position": [8.53379056,50.16352417],
      "Speed": 20,
      "Timestamp": "2024-05-22T18:13:59Z"
    }
  ],
  "TravelMode": "Car"
}
```

------
#### [ Sample response ]

```
{
    "Notices": [],
    "SnappedGeometry": {
        "Polyline": "Redacted"
    },
    "SnappedGeometryFormat": "FlexiblePolyline",
    "SnappedTracePoints": [
        {
            "Confidence": 1,
            "OriginalPosition": [8.53404, 50.16364],
            "SnappedPosition": [8.53402, 50.16367]
        },
        {
            "Confidence": 0.86,
            "OriginalPosition": [8.53379056, 50.16352417],
            "SnappedPosition": [8.53375, 50.16356]
        }
    ]
}
```

------
#### [ cURL ]

```
curl --request POST \
  --url 'https://routes.geo.eu-central-1.amazonaws.com/v2/snap-to-roads?key=Your_key' \
  --header 'Content-Type: application/json' \
  --data '{
  "TracePoints": [
    {
      "Position": [8.53404,50.16364],
      "Timestamp": "2024-05-22T18:13:42Z"
    },
    {
      "Position": [8.53379056,50.16352417],
      "Speed": 20,
      "Timestamp": "2024-05-22T18:13:59Z"
    }
  ],
  "TravelMode": "Car"
}'
```

------
#### [ AWS CLI ]

```
aws geo-routes snap-to-roads --key ${YourKey} \
--trace-points '[{"Position": [8.53404, 50.16364], "Timestamp": "2024-05-22T18:13:42Z"}, {"Position": [8.53379056, 50.16352417], "Speed": 20, "Timestamp": "2024-05-22T18:13:59Z"}]' \
--travel-mode "Car"
```

------

### 使用带有选项的卡车模式匹配 GPS 轨迹
<a name="match-gps-truck-mode-options"></a>

------
#### [ Sample request ]

```
{
  "TracePoints": [
    {
      "Position": [8.53404,50.16364],
      "Timestamp": "2024-05-22T18:13:42Z"
    },
    {
      "Position": [8.53379056,50.16352417],
      "Speed": 20,
      "Timestamp": "2024-05-22T18:13:59Z"
    }
  ],
  "TravelMode": "Truck",
  "TravelModeOptions": {
    "Truck": {
      "GrossWeight": 10000
    }
  }
}
```

------
#### [ Sample response ]

```
{
    "Notices": [],
    "SnappedGeometry": {
        "Polyline": "Redacted"
    },
    "SnappedGeometryFormat": "FlexiblePolyline",
    "SnappedTracePoints": [
        {
            "Confidence": 1,
            "OriginalPosition": [8.53404, 50.16364],
            "SnappedPosition": [8.53402, 50.16367]
        },
        {
            "Confidence": 0.86,
            "OriginalPosition": [8.53379056, 50.16352417],
            "SnappedPosition": [8.53375, 50.16356]
        }
    ]
}
```

------
#### [ cURL ]

```
curl --request POST \
  --url 'https://routes.geo.eu-central-1.amazonaws.com/v2/snap-to-roads?key=Your_key' \
  --header 'Content-Type: application/json' \
  --data '{
  "TracePoints": [
    {
      "Position": [8.53404,50.16364],
      "Timestamp": "2024-05-22T18:13:42Z"
    },
    {
      "Position": [8.53379056,50.16352417],
      "Speed": 20,
      "Timestamp": "2024-05-22T18:13:59Z"
    }
  ],
  "TravelMode": "Truck",
  "TravelModeOptions": {
    "Truck": {
      "GrossWeight": 10000
    }
  }
}'
```

------
#### [ AWS CLI ]

```
aws geo-routes snap-to-roads --key ${YourKey} \
--trace-points '[{"Position": [8.53404, 50.16364], "Timestamp": "2024-05-22T18:13:42Z"}, {"Position": [8.53379056, 50.16352417], "Speed": 20, "Timestamp": "2024-05-22T18:13:59Z"}]' \
--travel-mode "Truck" \
--travel-mode-options '{"Truck": {"GrossWeight": 10000}}'
```

------