Google Maps SDK 地理编码

Google Maps SDK Geocoding

问题:

问题是 Android 的内置 Geocoder backend varies between forks of AOSP and implementations of IGeocodingProvider。为了保持一致性,最好使用 Google 地图地理编码 API。在我的搜索中,我没有找到使用 Google Play Services SDK 进行地理编码的方法。

存在地理编码 REST API,但我将无法将 API 密钥限制到我的 Android 应用程序。

问题:

是否有用于地理编码的 Google Play 服务 SDK 必须能够限制 API 键?

不幸的是,Google 地图 Android API v2 包含在 Google Play Services SDK 中没有自己的地理编码器可以与 API 键 Android 应用限制。

功能请求创建于 2013 年,但看起来 Google 并未为此任务设置高优先级。您可以在 Google 问题跟踪器中查看功能请求并为其加注星标:

https://issuetracker.google.com/issues/35823852

目前,Android 的内置地理编码器的唯一替代品是 REST API。有一个 Java client library for Google Maps API Web Services 可以更轻松地将地理编码 REST API 与 Java 代码集成,但是,REST API 中的 API 键可能仅受限于IP 地址:

https://developers.google.com/maps/faq#keysystem

为了应用 IP 限制,您需要添加一个中间服务器,它将网络服务请求发送到 Google 并将响应传回您的移动应用程序。在这种情况下,您可以通过服务器的 IP 地址保护 API 密钥。