Google Map API 无法插入到 url,包括 Google Map Json
Posted
技术标签:
【中文标题】Google Map API 无法插入到 url,包括 Google Map Json【英文标题】:Google Map API cannot be inserted into url including in Google Map Json 【发布时间】:2020-01-18 10:38:25 【问题描述】:我有一个如下所示的网址。
https://maps.googleapis.com/maps/api/geocode/json?key=MY-KEY-API&latlng=40.9927242,29.0231916
我想通过如下所示的改造部分从 url 获取 json 结果。
public static final String URL = "https://maps.googleapis.com";
@GET("/maps/api/geocode/json")
Call<Location> getInformation(@Query("latlng") String lat);
Call<Location> req = Manager.getInstance().getCity("40.9927242,29.0231916");
响应如下所示。
response : Responseprotocol=h2, code=200, message=, url=https://maps.googleapis.com/maps/api/geocode/json?latlng=40.9927242%2C29.0231916
API key 不能插入到 url 部分,即使它在 androidManifest.xml 中定义
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
google_maps_key.xml
<string name="google_maps_key"
templateMergeStrategy="preserve" translatable="false">
MY-KEY-API
</string>
当我点击url时,由于没有在url中添加API,错误以json格式定义。
"error_message": "You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please refer to http://g.co/dev/maps-no-account",
"results": [],
"status": "REQUEST_DENIED"
我该如何解决?
【问题讨论】:
【参考方案1】:您需要在 Geocoding API 请求中显式添加 API 密钥(即https://maps.googleapis.com/maps/api/geocode/json?key=AIza...
)。
Maps SDK for Android 使用您插入 Android 清单的密钥在您的 Android 应用上加载地图。
另一方面,Geocoding API 不使用也不识别该 Android 密钥。它需要自己的密钥。现在您对该 API 的调用是无密钥的,这就是您收到 REQUEST_DENIED 错误的原因。
旁注:建议您为 Web 服务使用另一个 API 密钥,因为您的 xml 文件中的密钥应该是 Android restricted。
关于如何限制您的地理编码密钥,请查看 Google 的 documentation“在使用 Maps Web 服务 API 的移动应用程序上”部分中提到的技术。
希望对你有所帮助。
【讨论】:
以上是关于Google Map API 无法插入到 url,包括 Google Map Json的主要内容,如果未能解决你的问题,请参考以下文章
Google Map Road API 没有插入路径,也没有给出平滑的路线
Google Map Directions Api v2 无法执行路线/路径请求