【发布时间】:2010-11-30 04:28:44
【问题描述】:
我正在尝试找出一种很好的方法来限制向 Google Maps API v3 地理编码器服务发送地理编码请求的速率。我知道 Javascript 没有任何好的 wait 或 sleep 因为它的执行暂时是单线程的。
每个地理编码器请求都在 jQuery each 函数内发送。所以,一般的代码骨架是:
$(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实现吗?如果可以,如何实现?
【问题讨论】:
标签: java javascript jquery geocoding google-maps-api-3