错误数
如果发生错误,系统将返回标准格式的错误响应正文,并将 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 控制台中配置的请求限制。此限制通常设置为每天请求数、每 100 秒请求数和每个用户每 100 秒请求数。此限制应配置为防止单个或一小部分用户耗尽您的每日配额,同时仍允许所有用户进行合理的访问。如需配置这些限制,请参阅限制 API 使用量。 |
指数退避算法
当请求失败时,您应确保使用指数退避算法重试请求。例如,如果请求失败一次,一秒后重试;如果再次失败,则两秒后重试;然后是四秒后重试,依此类推。这样可以确保中断的请求或大规模故障不会因很短时间内许多客户端就尝试重试请求而给 Google 的服务器造成泛洪攻击。
问题排查常见问题解答
实施问题
- 我应该以什么样的频率采样车辆位置?
- 建议每 1-10 秒获得一次高质量的“沿实际道路”结果。
- 每次查询可以发送的点数是否有限制?
- 有,一次查询最多可以包含 100 个点。
- 存储贴靠的纬度/经度对时应使用什么级别的精确度?
- 为确保贴靠路径在所有缩放级别下(包括在最大缩放级别下)都跟随道路,您应将贴靠的纬度/经度对存储到小数点后 7 位。
- 能否使用编码多段线显示贴靠路径?
- 编码多段线仅指定到 5 位小数的精度,会导致大约 2 米的误差。因此,如果您想让贴靠路径在较高的缩放级别跟随道路,则不适合使用编码多段线。
常见问题
- 某些点未贴靠,或者贴靠路径中存在间隙。该如何更正?
- 当我放大地图时,为什么我的贴靠路径呈锯齿状或与道路略有不同?
-
- 在显示贴靠的纬度/经度对之前,您是否会截断精度对它们?如果在地图上显示贴靠路径,以低于 7 位小数的精度存储贴靠的纬度/经度对会导致精度错误。
- 您是否使用编码多段线?编码多段线会将纬度/经度对截断至小数点后 5 位,这会导致几米的误差,导致线条在高缩放级别下与道路参差不齐或略微偏离。
如果以上两种情况均不符合,则说明地图图块可能最近进行了更新,导致它们与用于贴靠的道路索引不同步。如果只有少数查询受到影响,这可能是原因所在。由于 Google 地图会定期更新,这种情况可能偶尔会发生。如果您经常查看地图上的旧路径(例如,几周前贴靠的路径),这种情况可能会更频繁地发生。为了获得最佳的可视化效果,您应该在在地图上显示旧路径之前重新贴靠它们,以最大限度地减少地图图块和用于贴靠的道路索引之间的不一致。
- 什么原因可能导致 X 公路的限速显示不正确?
- 速度限制的来源有多种,精确度和覆盖范围各不相同。
如果您发现某种规律,例如某种道路类型的限速或某一特定区域的限速一直都有误,请按以下步骤通知我们:
- 在桌面设备上打开 Google 地图或 Android 版 Google 地图应用。
- 打开左侧菜单。
- 选择发送反馈。注意:系统可能会提示您登录。
- 选择修改地图。
- 选择您要修改的路段。
- 选择下一步。
- 在“其他”字段中,指明该道路的限速有误。
- 选择提交。
- 为什么我的贴靠路径会切断道路,而不是沿着道路前进?
-
如需解决此问题,请检查以下各项:
- 确保将
interpolate
参数设置为true
。 - 检查是否以足够近的间隔(每 1-10 秒)对原始数据点进行采样。
- 确保将
- 对于没有速度限制更改的道路,为什么我的贴靠路径中返回了很多路段?
- 当
interpolate
参数设置为true
时,贴靠道路查询会返回一条沿着角落、曲线和环岛周围道路的多段线。如果道路弯曲,即使速度限制未发生变化,系统也会返回多个路段,以便创建紧密贴合道路几何图形的多段线。