Google Geocoding api错误消息:我们很抱歉...... ...但是您的计算机

时间:2015-03-25 13:57:21

标签: google-geocoding-api

[解决]

我们使用Google Geocoding api。 几个星期前,它引发了一个错误:

  

Google抱歉......我们很抱歉......但您的计算机或网络可能会...   发送自动查询。为了保护我们的用户,我们无法处理   你现在的要求。

     

有关详细信息,请参阅Google帮助。

我用php获得经度和纬度。

我的网址如下:

$url = "http://maps.googleapis.com/maps/api/geocode/json?address=luzern&sensor=false&key=myGoogleConsoleApiKey";

我的php功能:

   function geturlfile($url) {

      $time_start = microtime(true);
      $cs = curl_init($url);

      curl_setopt($cs, CURLOPT_PORT, 80);
      curl_setopt($cs, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($cs, CURLOPT_HEADER, 0);
      curl_setopt($cs, CURLOPT_RETURNTRANSFER, true);

      $result = curl_exec($cs);

      $ce = curl_error($cs);
      curl_close($cs);

      return $result;
   }

结果是上面的错误消息!

我试过了:

  • 使用SSL代替没有ssl-https和端口443 - 无法正常工作
  • 添加国家/地区 - 卢塞恩,+瑞士 - 无法正常工作
  • 无钥匙使用 - 无法使用
  • 直接在浏览器中调用网址 - 它有效!

重要事实:

  • 我在另一个页面上使用相同的PHP代码,它运行良好。
  • 由于它不起作用,我运行一个将50个地址转换为的脚本 经度和纬度。这也行不通,我运行脚本 三次。

我认为谷歌意味着我们是一个机器人。我怎么能告诉谷歌我们不是?或者有什么问题?我希望你能帮助我!

我忘了提到我们将php功能与地图结合使用。 我们将其用作商店定位器:用户发送带有拉链或地方的表单,我们将其发送给谷歌以获得替代品并在地址周围展示商店。

2 个答案:

答案 0 :(得分:0)

与Google明确指出的错误消息一样,您在给定时间段内执行了太多请求。

等待几个小时,直到Google取消阻止您的IP或获取新的IP地址。然而,当需要对地理编码API进行大量查询时,请考虑在本地环境中缓存请求或考虑“Google Maps API for Work”:https://developers.google.com/maps/documentation/geocoding/#Limits

答案 1 :(得分:0)

[解决]

经过多次测试后,我注意到Google阻止了服务器IP或其他。我在另一台服务器上使用了代码,但它确实有效。

注意:服务器是共享主机,我没有机会更改IP。

小心讽刺!!感谢Google,感谢您的帮助!!

所以,我找到了一个非常好的替代品! 我更改了3,4行代码并且BAM可以工作。

信息:http://wiki.openstreetmap.org

地理编码:http://wiki.openstreetmap.org/wiki/Nominatim