我使用Google地理编码API对多个地址进行地理编码。所以我所做的就是顺序提出请求,一旦我获得OVER_QUERY_LIMIT状态,我就会冷却1.5秒然后继续。
根据文档(https://developers.google.com/maps/documentation/geocoding/usage-limits),我应该能够达到10req / s,这对于第一次请求是正确的,但是一旦我第一次达到限制,我只能做2-3次请求在我再次获得OVER_QUERY_LIMIT之前。使用10req / s,我原本以为我可以制作20req / 2s,30req / 3s等等,但似乎并非如此。
我错过了什么或这是预期的行为吗?
如果我有高级帐户,我会有同样的行为吗?所以我在第一秒获得50req但是限制会减少吗?
编辑: 这就是我的地理编码请求的样子
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': address}, function(result, status) {
if(status === google.maps.GeocoderStatus.OK) {
// Yippee
} else if (status === google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
// Wait 1.5s then retry address
} else {
// Crap!
}
}
答案 0 :(得分:2)
您正在检查Web服务的文档。实际上,Web服务有10个QPS使用限制,但客户端实现是不同的。
从JavaScript客户端地址解析器服务,您可以立即执行10个请求的桶,之后桶以每秒1个请求的速率重新填充。这是为人工交互而设计的,您无法使用客户端服务执行批量地理编码。
所以这是预期的行为。