前提
我正在使用 Google Elevation Service 来获取路径上所有节点的高度,并由用户绘制到 Leaflet 地图上。这允许我生成一个海拔图。目前,如果我提出超过 2 个请求(每个请求限制为 512 个位置),我总是会点击OVER_QUERY_LIMIT
.
使用政策
- 每天 2,500 个免费请求,按客户端和服务器端查询的总和计算;启用计费以获得更高的每日配额,按 0.50 美元/1000 个额外请求计费,每天最多 100,000 个请求。
- 每个请求 512 个位置。
- 每秒 50 个请求*,计算为客户端和服务器端查询的总和。
我知道我每天没有达到 2500 个请求(可以在开发人员控制台中查看已发出多少个请求)。我也知道每个请求肯定有 512 个位置,因此唯一要达到的配额是每秒 50 个请求。
方法
为了处理大量节点,我正在执行以下操作:
- 输入要运行的节点列表
- 从列表中获取第一个块(512 个位置)
- 使用该块进行 API 调用
- 将返回的高程附加到数组
- 等待 1 秒
- 从 2 循环到 5 直到列表耗尽
实际代码:Codepen
如果我让每个请求之间的等待时间很长(比如 5 秒),请求发送正常,但据我所知,我应该能够每秒发送 50 个请求 - 所以 10,000 个节点的列表应该需要 20请求,理论上甚至不需要等待 - 但即使等待它也会遇到错误。