Google Map API 不能插入到 url 中,包括 Google Map Json 中



>我有一个如下所示的网址。

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 : Response{protocol=h2, code=200, message=, url=https://maps.googleapis.com/maps/api/geocode/json?latlng=40.9927242%2C29.0231916}

API 密钥无法插入到 url 部分中,即使通过在 Android 清单中定义.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 时,错误以 json 格式定义,因为没有将 API 添加到 url 中。

{
"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"
}

我该如何解决它?

您需要将 API 密钥显式添加到地理编码 API 请求中(即https://maps.googleapis.com/maps/api/geocode/json?key=AIza...(。

适用于 Android 的地图 SDK 使用您插入到 Android 清单中的密钥在 Android 应用上加载地图。

另一方面,地理编码 API 不使用或识别该 Android 密钥。它需要自己的密钥。现在,您对此API的调用是无密钥的,这就是您收到REQUEST_DENIED错误的原因。

旁注:建议您对网络服务使用其他 API 密钥,因为 xml 文件中的密钥应受 Android 限制。

至于如何限制地理编码密钥,请查看Google文档中提到的技术,"关于使用地图Web服务API的移动应用程序"部分。

希望这对你有帮助。

相关内容

  • 没有找到相关文章

最新更新