首页
学习
活动
专区
圈层
工具
发布

Google Directions API查询限制

Google Directions API 是 Google Maps Platform 提供的服务之一,用于获取两点或多点之间的路线规划信息。以下是关于其查询限制的详细说明:

1. 基础概念

Google Directions API 允许开发者通过 HTTP 请求获取以下数据:

  • 多种交通方式(驾车、步行、骑行、公共交通)的路线。
  • 路线距离、时间、转向指示(steps)等详细信息。
  • 支持实时交通数据(需启用特定参数)。

2. 查询限制

(1) 配额限制

  • 免费配额(标准计划):
    • 每日最多 2,500 个方向请求(每个 HTTP 请求计为 1 次)。
    • 每秒最多 50 个查询(QPS)
  • 付费配额
    • 需启用计费账户并申请提升配额,具体上限需联系 Google 销售团队协商。

(2) 计费方式

  • 每个方向请求计为 1 次 API 调用
  • 附加功能(如实时交通数据)可能额外计费。

(3) 其他限制

  • 请求参数限制
    • 最多 25 个途径点(Waypoints) per 请求。
    • URL 长度不超过 16,384 字符
    • 坐标精度限制(经纬度小数点后最多 6 位)。
  • 缓存限制
    • 禁止长期缓存结果(需遵守 Google 的缓存策略)。

3. 超出限制的影响

  • HTTP 429 错误:超出 QPS 限制时返回。
  • HTTP 403 错误:超出每日配额时返回。
  • 持续超限可能导致 API 访问被临时封禁。

4. 优化建议

(1) 减少请求次数

  • 合并请求:通过 waypoints 参数一次性获取多点的路线(最多 25 个)。
  • 使用 Directions API 的批量功能(如 Distance Matrix API 替代部分场景)。

(2) 缓存策略

  • 缓存静态路线(如无实时交通需求),但需遵守 Google 的缓存时长规定(通常 ≤ 30 天)。

(3) 错误处理

代码语言:txt
复制
// 示例:处理 API 限流的重试逻辑(JavaScript)
async function getRoute(origin, destination) {
  try {
    const response = await fetch(`https://maps.googleapis.com/maps/api/directions/json?origin=${origin}&destination=${destination}&key=YOUR_API_KEY`);
    const data = await response.json();
    if (data.status === "OVER_QUERY_LIMIT") {
      console.log("触发限流,1秒后重试...");
      await new Promise(resolve => setTimeout(resolve, 1000));
      return getRoute(origin, destination); // 递归重试
    }
    return data;
  } catch (error) {
    console.error("请求失败:", error);
  }
}

(4) 监控配额

  • 通过 Google Cloud Console 的 API Dashboard 监控用量。

5. 替代方案

  • 开源工具:如 OSRM(Open Source Routing Machine)或 GraphHopper。
  • 其他商业 API:如 Mapbox Directions API(需注意其独立配额)。

6. 常见问题

Q: 为什么返回 REQUEST_DENIED

  • 可能原因:API 密钥无效、未启用 Directions API 服务、或请求未包含密钥。

Q: 如何计算途径点的配额?

  • 每个途径点会增加请求复杂度,但不会额外计费(仍计为 1 次调用)。

如需进一步扩展配额或功能,建议参考 Google Maps Platform 官方文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券