我试图找出一种很好的方法来限制我向 Google Maps API v3 地理编码器服务发送地理编码请求的速率。我知道 Javascript 没有任何好处wait
,或者sleep
因为它的执行暂时是单线程的。
每个地理编码器请求都在 jQueryeach
函数内发送。所以,一般的代码骨架是:
$(xml).find('foo').each(function(){
// do stuff
...
geocoder.geocode(request, function(results, status) {/* do other stuff */});
// do more stuff
...
}
如何设置固定间隔以在每次调用之间等待geocode
?如果我发送每个请求的速度与 Javascript 的运行速度一样快,那么我很快就会开始接收OVER_QUERY_LIMIT
响应——即使我只发送 20 个请求。这是意料之中的,我正在努力让我的客户很好地使用 Google 的服务。
我愿意追求的另一条路线是完全放弃 Javascript 进行地理编码,并用 Java 编写它。使用 Java,在请求之间睡觉真的很容易。
但是,我找不到在 Java 中使用 Google 的地理编码服务(特别是使用 API 的第 3 版)的方法。GeoGoogle似乎已经过时一年多了,并且使用的是 v2。
可以用Java完成吗?如果可以,怎么做?