使用Google地图地理编码时出现OVER_QUERY_LIMIT问题

时间:2012-06-20 12:28:48

标签: google-maps-api-3 geocoding

我在尝试通过Google地理编码获取纬度和经度时遇到OVER_QUERY_LIMIT的问题。不知何故,即使我等了24个多小时,它也不起作用。我没有超过2,500个请求,这是最大的 - 最多100个。

问题OVER_QUERY_LIMIT仅发生在我的服务器(webhotel)上。使用我的本地机器(localhost)时,我没有遇到任何问题。

我认为某处有一块,但我不确定。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

如果您使用的是共享服务器环境,则可能是同一IP上的其他人正在主动查询Google地理编码服务。这就是为什么,在你的本地主机(具有不同的IP地址)上,你根本没有遇到任何问题。

更新(基于上面的评论):现在你提到它的不一致有点奇怪,我不是100%确定是什么原因造成的。但是,最好的解决方案可能是寻找一种允许地理编码 en masse 的服务,并且最好允许您保留结果。你也会不必要地在任何不存在的地址上分析你的所有查询(或者你至少会得到不好的坐标)。

我在SmartyStreets处理过的事情被称为LiveAddress - 它就像Google的API,但更易于使用,只返回有效结果(意味着你)不会获得不存在的地址的坐标。它是免费的,可能没有查询限制,并且您可能在此处遇到任何TOS限制。而且我很确定即使您查询了地址,也不会在您的帐户中扣除无法验证的地址。

这是另一种选择,您可以将其视为解决您遇到的限制的解决方法。

答案 1 :(得分:0)

如果您有自己的API密钥,只需添加信用卡详细信息即可验证您的帐户( Google仅将其用于验证目的,除非您使用Google API Premier 否则不会向您收费)。这会将每天 250,000 请求的限制提高,并为您提供唯一的API密钥和实时统计信息。

您可以在Google API console

中执行此操作

答案 2 :(得分:0)

$output= json_decode(stripcslashes(file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.$data['lat'].','.$data['lon'].'&sensor=false&language=ru')));
print $output->results[0]->formatted_address