这是我第一次在堆栈溢出上发布问题,真的希望你们能帮忙。
我第一次尝试使用谷歌地图地理编码 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"
}
我尝试将网址替换为我的作品网站上当前使用的网址,并且得到了相同的响应,我尝试了自己生成的两个不同的密钥,一个是上周创建的,另一个是一小时前创建的。 我已按以下方式设置密钥:
我绝对正确地输入了密钥,我和另一位开发人员都已多次检查过这一点,有人对可能出现的问题有任何想法吗?
提前感谢任何提供帮助的人。
更新 我发现了导致该流程在 10 次迭代后停止工作的问题。 谷歌地理编码 API 有每秒 10 次调用的限制,我正在研究这个,我现在每 10 次迭代添加 1 秒的延迟,理论上我现在可以达到每日限制。
但是,我仍然需要比默认免费限制更多的呼叫,正如下面我的评论中所述,我相信我可以使用 API 密钥来根据我拥有经过验证的帐户来增加免费限制。 我将其用于商业目的,但它的数量不够大,不值得为此付费。 谁能帮我解决这个问题吗?
好吧,看来如果不支付企业帐户费用,我想要做的事情是不可能的。 无法将 apikey 应用到 google geocoding api。
我误解了一些有关谷歌地图 API 的文档,其中提到提高每日查询的允许限制。
这似乎不适用于地理编码 API。
从您的示例来看,您似乎正在尝试对英国邮政编码进行地理定位。 您不需要谷歌 API 来执行此操作,您可以下载英国邮政编码列表,将其放入数据库中并使用 Google 作为后备选项。 我建议从这里下载 https://www.doogal.co.uk/UKPostcodes.php
将错误从一个源转移到另一个源时,您可能会出现不匹配的错误。
尝试以下网址,
https://maps.googleapis.com/maps/api/geocode/json?address=LS2+9AQ&sensor=false&key=[your_key]
如果仍然出现问题,那么您还必须尝试使用另一个 api 密钥。
我收到此错误是因为我不小心将
undefined
作为我的 google API 密钥传递。确保您的密钥已定义且正确。