6

这是我第一次发布关于堆栈溢出的问题,真的希望你们能提供帮助。

我第一次尝试使用谷歌地图地理编码 API,但无法正常工作。

我使用的网址格式是:

https://maps.googleapis.com/maps/api/geocode/json?address=LS2+9AQ&sensor=false&key=[MY_API_KEY]

在这种情况下,我正在从 chrome 浏览器查找英国邮政编码:LS2 9AQ。

当我不使用我的 api 密钥时,该 url 确实有效,但是没有密钥的允许调用数量的限制对于我的需要来说太低了。

我还没有在生产站点中使用它,现在它是从我的本地开发人员用 chrome 运行的。

我得到的实际回应是:

[error_message] => The provided API key is invalid.
[results] => Array
    (
    )

    [status] => REQUEST_DENIED

当我删除 api 密钥时,它可以工作并返回以下内容:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "LS2 9AQ",
               "short_name" : "LS2 9AQ",
               "types" : [ "postal_code" ]
            },
            {
               "long_name" : "Woodhouse",
               "short_name" : "Woodhouse",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Leeds",
               "short_name" : "Leeds",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "West Yorkshire",
               "short_name" : "West York",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "United Kingdom",
               "short_name" : "GB",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "Leeds",
               "short_name" : "Leeds",
               "types" : [ "postal_town" ]
            }
         ],
         "formatted_address" : "Woodhouse, Leeds, West Yorkshire LS2 9AQ, UK",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 53.8090296,
                  "lng" : -1.5509549
               },
               "southwest" : {
                  "lat" : 53.8083045,
                  "lng" : -1.5519655
               }
            },
            "location" : {
               "lat" : 53.808447,
               "lng" : -1.5517752
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 53.81001603029149,
                  "lng" : -1.550111219708498
               },
               "southwest" : {
                  "lat" : 53.80731806970849,
                  "lng" : -1.552809180291502
               }
            }
         },
         "types" : [ "postal_code" ]
      }
   ],
   "status" : "OK"
}

我尝试用我的作品网站上当前正在使用的 URL 替换 URL,我得到了相同的响应,我尝试了我自己生成的两个不同的密钥,一个是上周创建的,另一个是一小时前创建的。我已经通过以下方式设置了密钥:

  • 付款已启用并且信用卡已附加到项目(有人告诉我这是需要通过验证身份来增加对 api 的限制)
  • 一键推荐人设置为“dev.test.com/*”(这是我在本地开发人员上为此使用的网址)。在另一个键上没有指定引用者。
  • 密钥是浏览器应用程序密钥

我肯定正确输入了密钥,我和另一个开发人员都检查了多次,有没有人对可能出现的问题有任何想法?

提前感谢任何有帮助的人。

更新 我发现了导致进程在 10 次迭代后停止工作的问题。谷歌地理编码 api 有每秒 10 次调用的限制,我正在处理这个问题,我现在每 10 次迭代添加 1 秒延迟,理论上我现在可以达到每日限制。

但是,我仍然需要比默认免费限制更多的电话,正如我在下面的评论中所述,我相信我可以使用 api 密钥来增加基于我拥有经过验证的帐户的免费限制。我将其用于业务,但数量不够大,不值得为此付费。任何人都可以帮我解决这个问题吗?

4

3 回答 3

7

好的,如果不支付商业帐户费用,我似乎无法做到这一点。无法将 apikey 应用于 google geocoding api。

我误解了一些关于 google maps api 的文档,其中提到了提高每日查询的允许限制。

这似乎不适用于地理编码 api。

于 2013-11-12T09:55:27.470 回答
0

在将错误从一个来源传输到另一个来源时,您可能会不匹配错误。

试试下面的网址,

https://maps.googleapis.com/maps/api/geocode/json?address=LS2+9AQ&sensor=false&key=[your_key]

如果仍然出现问题,那么您也必须尝试使用​​另一个 api 密钥。

于 2021-11-23T12:02:59.030 回答
0

从您的示例中,您似乎正在尝试对英国邮政编码进行地理定位。您不需要 google API 来执行此操作,您可以下载英国邮政编码列表,将其放入数据库并使用 Google 作为后备选项。我建议从这里下载它https://www.doogal.co.uk/UKPostcodes.php

于 2016-06-21T12:40:52.800 回答