Geocoder getFromLocationName未找到地址

Law*_*eGS 6 android google-maps geocoding

如果我正在搜索商业地点,Geocoder getFromLocationName不返回任何内容.以下是我到目前为止的发现:

  • 杂货店,商业建筑 - >没有结果
  • 学校 - >找到结果,但只返回纬度和经度.我必须进行反向地理编码才能根据坐标获取地址,但地址不准确.
  • 完整的地址 - >与学校相同,只返回纬度和经度
  • 医院和药房 - >返回纬度和经度

我已经在拥有Google地图的1.6,2.1和2.2设备上进行了测试.

我试图找出SDK上某处是否有限制解释,但除了:

反向地理编码位置描述中的详细信息量可能会有所不同,例如,一个可能包含最近建筑物的完整街道地址,而另一个可能只包含城市名称和邮政编码.Geocoder类需要一个未包含在核心android框架中的后端服务.如果平台中没有后端服务,Geocoder查询方法将返回一个空列表(http://developer.android.com/reference/android/location/Geocoder.html)

[更新] 因此经过一夜的研究,我似乎无法使其发挥作用 - 谷歌根本不会给我结果.关于android-developers的一些讨论指出了一个事实,即当Google Navigation出现时,getFromBusinessName被省略了.所以我开始假设谷歌正在撤回一些地理编码服务.

我总是可以创建一个使用Google Geocoder API的网页,但其限制为2500 api电话 - 而且我认为这不合法(lol).那么我的替代方案是什么?

Oll*_*e C 1

我遇到了同样的问题。我发现,如果我包含企业/场所名称,地理编码 API 通常不会返回任何结果,但如果缺少它,纬度/经度可能会不太准确。

我实现了一个务实的解决方案: 1. 使用包含企业/场所名称的字符串调用 API 2. 如果失败,请再次调用,不包含企业/场所名称,仅使用地址

我还没有看到没有返回位置的情况,所以这似乎是一个不错的妥协,因为这意味着我至少可以获取位置数据(如果有时不太准确),并且通过线程调用可以减轻第二次 API 调用的成本。