谷歌地图 SDK 地理编码
Posted
技术标签:
【中文标题】谷歌地图 SDK 地理编码【英文标题】:Google Maps SDK Geocoding 【发布时间】:2018-10-29 21:06:12 【问题描述】:问题:
问题在于 android 的内置 Geocoder 后端在 AOSP 的分支和 IGeocodingProvider 的实现之间有所不同。为了保持一致性,最好使用 Google Maps Geocoding API。在我的搜索中,我没有找到使用 Google Play 服务 SDK 进行地理编码的方法。
存在地理编码 REST API,但我将无法将 API 密钥限制为我的 Android 应用程序。
问题:
是否有用于地理编码的 Google Play 服务 SDK 必须能够限制 API 密钥?
【问题讨论】:
【参考方案1】:很遗憾,Google Play 服务 SDK 中包含的 Google Maps Android API v2 没有自己的地理编码器,可以与具有 Android 应用限制的 API 密钥一起使用。
该功能请求是在 2013 年创建的,但 Google 似乎并未对此任务设置高优先级。您可以在 Google 问题跟踪器中查看功能请求并为其加注星标:
https://issuetracker.google.com/issues/35823852
目前,唯一可以替代 Android 内置地理编码器的是 REST API。有一个Java client library for Google Maps API Web Services 可以更轻松地将 Geocoding REST API 与 Java 代码集成,但是,REST API 中的 API 密钥可能仅受 IP 地址限制:
https://developers.google.com/maps/faq#keysystem
为了应用 IP 限制,您需要添加一个中间服务器,该服务器将向 Google 发送网络服务请求并将响应传回您的移动应用程序。在这种情况下,您可以通过服务器的 IP 地址来保护 API 密钥。
【讨论】:
以上是关于谷歌地图 SDK 地理编码的主要内容,如果未能解决你的问题,请参考以下文章