如果我们在 Android 中使用位置 API 给出纬度和经度,如何获取地址

Posted

技术标签:

【中文标题】如果我们在 Android 中使用位置 API 给出纬度和经度,如何获取地址【英文标题】:How to get addresses if we give latitude and longitude using location API in Android 【发布时间】:2011-04-08 15:44:35 【问题描述】:

我有一个应用程序,我尝试根据纬度、经度坐标获取某个位置的地址。当我尝试打印特定坐标的所有地址时,我只得到一个地址。是否有任何方法可以获取所提供坐标的所有地址列表。我的代码 sn-p 如下:

其中 locationLatitude,locationLongitude 是 String 类型,它们被转换为双精度值。 Address 是一个类,它具有获取州、城市、国家等详细信息的 getter 和 setter 方法。

List<Address> addresses = geoCoder.getFromLocation(Double.parseDouble(locationLatitude),
Double.parseDouble(locationLongitude), 1);
StringBuffer  addressAsString  = new StringBuffer("");
if(!addresses.isEmpty())
    for (int i = 0; i < addresses.get(0).getMaxAddressLineIndex(); i++)
        addressAsString.append(addresses.get(0).getAddressLine(i) + "\n");
    return addressAsString.toString();

【问题讨论】:

这是***.com/questions/3649401/…的副本 【参考方案1】:

遍历所有地址,并将 getFromLocation 的第三个参数更改为 10 而不是 1,以获取给定地理位置的所有 10 个周围位置:

List addresses = geoCoder.getFromLocation(Double .parseDouble(locationLatitude), Double.parseDouble(locationLongitude), 10); 

for (Address addr:List addresses) 

  for (int i = 0; i < addr.getMaxAddressLineIndex(); i++) 
  // your previous code here
  

【讨论】:

这个代码的问题是,它没有附加州或国家,有时城市来有时不。这是什么行为?

以上是关于如果我们在 Android 中使用位置 API 给出纬度和经度,如何获取地址的主要内容,如果未能解决你的问题,请参考以下文章

Android - 由于设置撤销了位置权限导致应用崩溃

Google 地图 API for Android

Google 地图 API for Android

可以使用 Google API 通过 android 移动 gps 跟踪位置吗?

位置 api 有时在 android 中使用 google fused api 不给出确切的当前位置

如果 GPS 已打开,Android 设置 API 会打开 WiFi 以提高位置准确性