我在尝试通过Google地理编码获取纬度和经度时遇到OVER_QUERY_LIMIT
的问题。不知何故,即使我等了24个多小时,它也不起作用。我没有超过2,500个请求,这是最大的 - 最多100个。
问题OVER_QUERY_LIMIT
仅发生在我的服务器(webhotel)上。使用我的本地机器(localhost)时,我没有遇到任何问题。
我认为某处有一块,但我不确定。任何人都可以帮助我吗?
答案 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