错误
如果发生错误,系统将返回标准格式错误响应正文,并将 HTTP 状态代码设置为错误状态。
响应中包含一个带有单个 error
对象且具有以下键的对象:
code
:这与响应的 HTTP 状态相同。message
:错误的简短说明。status
:表示错误性质的状态代码。
例如,发送无效的 placeId
参数将返回以下错误:
{ "error": { "code": 400, "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"", "status": "INVALID_ARGUMENT" } }
可能的错误包括:
编码 | 状态 | 讯息 | 问题排查 |
---|---|---|---|
400 | INVALID_ARGUMENT |
您提供的密钥无效。 | 您的 API 密钥无效或未包含在请求中。 请确保您已添加完整的密钥,并且已为此密钥启用 API。 |
400 | INVALID_ARGUMENT |
“\"path\"”参数包含无效值:☃ | 您的请求包含无效的参数。导致此错误的最可能原因如下:
对于已不存在的道路或不属于道路的地点,如果传递了 |
403 | PERMISSION_DENIED |
已停止注册请求。请使用 Google Developers Console 注册。 | 由于以下一个或多个原因,请求被拒绝:
为了使用 Google Maps Platform 产品,必须为帐号启用结算功能,并且所有请求都必须包含有效的 API 密钥。如需修复此问题,请按以下步骤操作: |
404 | NOT_FOUND |
此服务要求使用 HTTPS。 | 确保您向 https://roads.googleapis.com/ (而不是 http://roads.googleapis.com/ )发送请求。 |
429 | RESOURCE_EXHAUSTED |
由于已达到项目请求限制,因此请求受到限制。 | 您已超出在 Google Cloud Platform Console 中配置的请求限制。此限制通常设置为每天请求数、每 100 秒请求数和每位用户每 100 秒请求数。此上限应配置为防止单个或一小部分用户耗尽您的每日配额,同时仍然允许所有用户都有合理的访问权限。如需配置这些限制,请参阅限制 API 用量。 |
指数退避算法
如果请求失败,您应该确保使用指数退避算法重试请求。例如,如果请求失败一次,一秒后重试;如果再次失败,请在两秒后重试,然后是四秒,依此类推。这样可以确保损坏的请求或大规模故障不会过多地消耗 Google 的服务器,因为许多客户端会尝试非常快速地重试请求。
问题排查常见问题解答
实施问题
- 我应该以何种频率对车辆位置进行采样?
- 建议每 1-10 秒获得一次“沿实际道路贴图”的高品质结果。
- 每次查询可以发送的积分数量有限制吗?
- 是的,一个查询最多可以有 100 点。
- 我应该使用多大的精确度来存储贴靠的纬度/经度对?
- 为确保贴靠路径在所有缩放级别下都经过道路,即使在最大缩放级别下,还应以精确的 7 位小数形式存储贴靠的纬度/经度对。
- 我可以使用编码多段线显示贴靠路径吗?
- 编码多段线仅指定精确到小数点后 5 位,因此误差约为 2 米。因此,如果您想让贴靠的路径在较高的缩放级别下沿着道路移动,则不适合使用编码多段线。
常见问题
- 某些点没有贴靠,或者贴靠路径存在间隙。如何更正这个问题?
- 为什么在放大时,道路的沿途卡在路上呈锯齿状或偏离?
-
- 您是否会在显示贴靠纬度/经度对之前将其截断?以贴靠方式小于 7 位小数的精度存储贴靠纬度/经度对会导致地图上显示贴靠路径时出现精度错误。
- 您是否使用编码多段线?编码多段线将纬度/经度对截断为 5 位小数,这会导致几个米的误差,导致在高缩放级别下出现车线抖动或略微偏离道路的线。
如果上述情况并非如此,可能是地图图块最近进行了更新,导致它们与用于贴靠的道路索引不同步。如果只有少数查询受到影响,则有可能造成这一问题。由于 Google 地图会定期更新,因此这种情况可能会偶尔发生。如果您经常查看地图上的旧路径(例如,数周前捕获的路径),则可能会更频繁地更新更新。为实现最佳显示效果,您应该在地图上重新显示旧路径,然后再将其显示在地图上,以最大限度减少地图图块与用于贴靠的道路索引之间的不一致。
- 什么原因会导致道路 X 的速度限制无法正确显示?
- 速度限制源于多个来源,它们的准确性和覆盖范围有所不同。
如果您发现某种模式(例如特定道路类型或特定区域的限速有误),请通过以下步骤告知我们:
- 在桌面设备上打开 Google 地图,或者打开 Android 版 Google 地图应用。
- 打开左侧菜单。
- 选择发送反馈。注意:系统可能会提示您登录。
- 选择修改地图。
- 选择要修改的路段。
- 选择下一步。
- 在“其他”字段中,指明相应道路的速度限制有误。
- 选择提交。
- 为什么我的贴靠路会折弯,而不是走完路?
-
如需解决此问题,请检查以下内容:
- 确保将
interpolate
参数设置为true
。 - 检查原始数据点的抽样间隔是否足够接近(每 1-10 秒)。
- 确保将
- 为什么我的道路的对应路径中返回了很多路段,而没有速度限制发生变化?
- 当
interpolate
参数设置为true
时,道路沿实际道路查询会返回沿着道路的角落、曲线和环岛的多段线。如果道路曲调,即使速度限制未变,也会返回多个路段,以便创建紧邻道路几何图形的多段线。