【问题标题】:Geocode API query limit exceed地理编码 API 查询限制超出
【发布时间】:2016-09-21 06:17:55
【问题描述】:

Geocode API 每天允许 2500 个请求,但我的网站没有在一天内发送此类请求。我的代码是否发送自动请求?

function getmap($addrss,$location,$city){

$address = $addrss.' '.$city.' '.$location;
$prepAddr = urlencode($address);

$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false');

$output= json_decode($geocode);

$lat = $output->results[0]->geometry->location->lat;
$long = $output->results[0]->geometry->location->lng;
$retval = $lat.'*'.$long;
return $retval;

}

响应来了

[error_message] => 您已超出此 API 的每日请求配额.....[status] => OVER_QUERY_LIMIT )

请提供任何建议。

【问题讨论】:

  • 要知道您的代码是否发送自动请求,您需要知道什么调用了getmap() 函数。
  • 它是一个简单的从首页调用一次的函数,它没有在任何循环中。
  • 您使用的是共享主机吗?其他人可能也在使用 Geocoding API。
  • 没有完全专用的服务器。我的代码正确吗?
  • OVER_QUERY_LIMIT 是由于超过了每秒的最大请求,在每个请求后使用 100 或 200 毫秒的 setTimeout..

标签: php json google-maps google-maps-api-3 latitude-longitude


【解决方案1】:

API Example I've looked up 它专门请求将 API 密钥附加到请求 URL,可能是这样吗?否则我的猜测会是意外的循环请求。

最好将 API Key 设置在此函数之外,以防此类/对象中的其他函数也想访问 API。

$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false&key='.$API_KEY);

【讨论】:

    【解决方案2】:

    尝试使用谷歌浏览器键如下,以获得每天更多的请求数

    http://maps.google.com/maps/api/geocode/json?key=YOUR_GOOGLE_MAP_API_KEY&address=los+Angels

    按照以下步骤获取 GOOGLE API KEY,

    1. 转到 Google Developers Console。
    2. 创建或选择一个项目。
    3. 点击继续以启用 API 和任何相关服务。
    4. 在凭据页面上,获取浏览器密钥(并设置 API 凭证)。
    5. (可选)启用计费。

    注意:如果您有现有的浏览器密钥,则可以使用该密钥。 为防止配额被盗,请按照这些最佳做法保护您的 API 密钥。

    【讨论】:

    • 从第五个选项看来我需要在那里付款。但是 2500 个请求是免费的吗?
    • 请查看以下链接了解更多详情:developers.google.com/maps/documentation/javascript/…
    • 它显示错误并说“浏览器 API 密钥在与此 API 一起使用时不能有引用限制....REQUEST_DENIED”
    • 我选择了 Google Maps Embed API for Web。
    • 将“接受来自这些 HTTP 引荐来源网址(网站)的请求”保留为可选项,再试一次
    猜你喜欢
    • 1970-01-01
    • 2012-06-24
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2015-05-11
    相关资源
    最近更新 更多