我有一个纬度和经度:"-27.0000,133.0000"
。我想以此为基础制作地图。
我试过去这个链接
https://maps.googleapis.com/maps/api/geocode/json?latlng=-27.0000,133.0000&key=******
我在浏览器上不断收到此错误
{
"error_message" : "This API project is not authorized to use this API. Please ensure that this API is activated in the APIs Console: Learn more: https://code.google.com/apis/console",
"results" : [],
"status" : "REQUEST_DENIED"
}
但我想我已经启用了那个 API。我登录到我的 Google 控制台,然后仔细检查。
当我去:https://console.developers.google.com/project/75423435770063/apiui/apis/enabled
我懂了 :
地理编码 + 地理定位已启用。
https://i.stack.imgur.com/Ytgql.png
我现在有点卡住了。我在这里错过了什么吗?
从你发的图片看,它是禁用的...
导航到 Google Maps
-> APIs
搜索地理编码并单击 Google Maps Geocoding API -> 启用 API。为地理定位做同样的事情
如果您使用 get 方法来获取地点,则需要启用
Google Places API 网络服务
我遇到了同样的问题,启用后解决了。
编辑: 根据 https://developers.google.com/places/web-service/get-api-key
注意:Google Places API Web 服务不适用于 Android 或 iOS 受限 API 密钥。
因此,如果或删除现有密钥的受限访问权限以使其正常工作,您必须创建新密钥。
还需要在 Google API 控制台中启用 Directions API。我启用了以下功能:
路线 API
地理编码 API
地图 JavaScript API
我也启用了 Geolocation API,但控制台没有显示它正在使用(0 个请求)。但也许它不是实时报告,所以无论如何启用都没有坏处。
我迟到了,但这里有另一个问题:Google 将 API 显示为已启用,但实际上并非如此。禁用然后重新启用它。
很可能 OP 启用了他们需要的一些但不是全部的 API,并且还没有指定密钥可以调用的启用的 API。 Google Cloud Console 中有一个有点棘手的 UX 功能,用于限制对可能导致问题的 API 密钥的访问。
以下步骤每次都为我解决错误:
首先检查您需要的 API 是否已启用(我在此答案的底部包含了大多数基本地图实现的常用 API)在 https://console.cloud.google.com/google/maps-apis/api-list:
如果不是,请转到左上角的导航菜单 > API 和服务 > 库,然后选择您需要的 API 并单击每个下方的启用按钮。
https://i.stack.imgur.com/OxSY1.png
接下来,检查 API 密钥是否受 API 限制。通过转到 Navigation Menu > APIs & Services > Credentials 然后单击 API 密钥来执行此操作。如果您通过 API 限制来自密钥的调用,请确保在该屏幕上的 API 列表中检查了您需要的每个:
https://i.stack.imgur.com/4e3i8.png
棘手的 UX 是默认情况下此列表不会显示所有可用的 API。例如,如果您尚未启用 Places API,则它不会出现在密钥可以调用的 API 列表中,直到您执行以下操作:
https://i.stack.imgur.com/E8uIC.png
这是一个小问题,可能会导致一些混乱。对于大多数基本 Maps 实现来说,似乎可以让事情顺利运行的 API 是:
地理编码 API
地理位置 API
地图 JavaScript API
地方 API
以下是对我有用的步骤:
启用路线 API;地理编码 API; Gelocation API console.cloud.google.com/google/maps-apis 启用 APIS 和服务以选择 API console.developers.google.com/apis/library
在 API 管理器菜单中,您应该能够单击概览,在 Google Maps API 标题和地图图标下选择相关 API。
您的页面可能正在使用其他一些 API,例如 Places。全部启用它们,看看是否有帮助。
Google Places API Web 服务 Google Maps Geocoding API
对我来说,我必须启用 Maps Embed API。
转到 API 选项卡,查看附加 API 部分并尝试启用任何与地图相关的 API。
https://i.stack.imgur.com/EaVko.png
从网页发送带有 axios
的 get
请求,我还需要(最后)启用 Geocoding API。
我还有 Places API、Maps Javascript API 和 Geolocation API。
由于谷歌政策更新,您需要启用计费才能访问 Map API。
这可能会在将来对某人有所帮助,这就是添加此答案的原因。
在我的 android studio 项目案例中。我还必须启用 Places API 才能获得建议
这对我有用。
就我而言,我尝试使用上述所有答案来解决,但无法解决错误。
请检查凭据中的 API 限制。
有 2 个选项“不限制密钥”和“限制密钥”。
我使用了“限制键”选项,只检查了 API“Maps SDK for Android”,这就是我收到错误的原因。需要检查您要使用哪些 API。编辑限制键后,您需要单击保存。 “不限制密钥”选项应该没问题(Google 将显示安全警告⚠)以下图像逐步显示。
https://i.stack.imgur.com/x53Ud.png
如果您没有启用 API,但有 API 密钥,则从浏览器运行 API(例如在显示地图时)或将请求传递给 curl 命令时,您将不会收到该错误。只有在代码中调用 API 时才会出现该错误。在 Python 中,使用 urllib
、pycurl
、构造 curl 命令并将其传递给 subprocess.check_output()
或使用 jQuery.get()
发送请求都没有关系;你仍然得到那个错误。我想知道谷歌是如何知道差异的。
我在 Drupal 站点上遇到了同样的问题。在谷歌云平台上启用地理编码 API 后,对我有用。在我的设置中,我需要两个 API,Geocoding 和 Maps Javascript API。
有同样的问题,为我的项目启用了 API,但没有为我使用的特定 API 密钥启用。
您应该能够在此处看到您的 API 密钥:https://console.cloud.google.com/apis/credentials
然后单击您正在使用的密钥并为此启用 API。对我来说,更改需要大约 5 分钟才能生效。
Places API 和 Places SDK for Android 是两个不同的 API。 Android 开发人员启用了它们。这对我有用!
无需启用具有不同用途的地理编码和地理定位 API。
对于 Angular 开发人员:
当我需要使用agm-direction package时,控制台显示“您必须先有一个凭证密钥,请转到here”,但我已经有了一个,所以我可以查看谷歌地图。
过了一会儿,我发现您唯一需要做的就是转到 Direction API 并启用它,然后等待大约 10 秒,您就可以开始了。整件事总结起来,控制台日志并没有准确地说明需要什么 API。
{ "error_message" : "This API project is not authorized to use this API. Please ensure that this API is activated in the APIs Console: Learn more: https://code.google.com/apis/console", "results" : [], "status" : "REQUEST_DENIED" }
启用方向 API 使我修复了此错误
https://console.developers.google.com/apis/library/directions-backend.googleapis.com
https://i.stack.imgur.com/daikL.png
也可以使用 Cloud SDK 启用 API。 https://developers.google.com/maps/documentation/geocoding/cloud-setup#enabling_apis
gcloud services enable \
--project "PROJECT" \
"geocoding-backend.googleapis.com"
https://cloud.google.com/sdk/gcloud/reference/services/enable
不定期副业成功案例分享
places
api