谷歌地图地理编码查询限制v2和v3之间的区别

问题描述:

当我在v2中执行客户端地理编码请求时,我能够以200ms的间隔连续做很多请求。但是在v3中,我必须将间隔增加到2秒以避免OVER_QUERY_LIMIT错误。这意味着在Maps v3中,我的地理编码将会慢很多。谷歌地图地理编码查询限制v2和v3之间的区别

Maps API v2和v3之间的这种区别对我来说似乎很奇怪。有没有其他人也遇到过这个问题,还是仅仅是我?有什么方法可以使用v2 geocoder而页面的其余部分使用v3?

PS。我主要关注反向地理编码(latlng-> address),它比正常的地理编码更慢。

我在应用程序中所做的事情尽可能多地尽我所能。每当我打开OVER_QUERY_LIMIT时,我都会让线程休眠5秒钟,然后重试。这很好。我做了一些尝试,找出它可以处理多少,并且似乎在短时间内有10个查询是极限。然后你必须等一下。

我不认为有可能使用这两个API的,因为你将不得不包括这两个.js文件,并且必然会有一些东西具有相同的名称,并会导致行为,你不能真的预测。

但我可以说的一件事是,如果你必须在客户端做所有事情,你似乎做错了什么。您是不是将这些位置存储在数据库或其他东西中的选项,然后只有在新的东西出现时才进行查找?

+0

是的,这是我目前使用的策略:在OVER_QUERY_LIMIT后再次尝试。是的,我确定服务器端缓存会有所帮助,但事实是,在v2中不需要这种缓存,地理编码速度提高了10倍。 PS:我应该注意到,我最关心的是反向地理编码,它似乎比普通地址 - > latlng地理编码慢。 – 2011-04-29 07:25:52

+0

在第2版中,您还必须定义一个密钥,向Google展示所有请求都来自您的网站,并且每个网站在一天内可能会对其请求有限制。在新版本中没有密钥,我认为这是他们不允许再发出更多请求的原因之一,因为请求将从客户端IP发出,并且您可以在请求期间加载更多请求来自不同知识产权的一天。但这只是我的推测:) – 2011-04-29 11:56:20

+0

我在v2中的经验是,客户端地理编码限制是按客户端计算的,而不是按API密钥计算 - 这是我们在客户端执行此操作的主要原因。 – 2011-04-29 12:37:09