如何只获得城市,州,国家从lat,长在android

use*_*443 17 android street-address google-geocoder

我有以下代码将lat,long转换为人类可读的地址.现在我获得包括街道名称在内的全部细节.我怎样才能得到城市,州,国家?我不想要任何更多细节.请帮我.

Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
try {
   List<Address> addresses = geoCoder.getFromLocation(latitude, longitude, 1);

   String add = "";
   if (addresses.size() > 0) 
   {
      for (int i=0; i<addresses.get(0).getMaxAddressLineIndex();i++)
     add += addresses.get(0).getAddressLine(i) + "\n";
   }

   showToastMessage(add);
}
catch (IOException e1) {                
   e1.printStackTrace();
}   
Run Code Online (Sandbox Code Playgroud)

Dus*_*ica 22

对地址中的对象使用以下方法:

getLocality()

getCountryName()

使用

getAdminArea() 返回状态.

我不知道这对其他国家有多准确,但对于美国的地址,这会返回正确的州名.

PS很抱歉写一个完整的答案,我还没有评论.


Ant*_*met 17

反向地理编码位置描述中的详细信息量可能会有所不同,例如,一个可能包含最近建筑物的完整街道地址,而另一个可能只包含城市名称和邮政编码.这将返回城市名称和国家/地区名称

    if (addresses.size() > 0) {
        System.out.println(addresses.get(0).getLocality());
        System.out.println(addresses.get(0).getCountryName());
    }
Run Code Online (Sandbox Code Playgroud)

有关详细信息,您可以查看Address对象

  • 非常有趣的是,该地区通常是空的.例如,我目前在捷克首都布拉格.locality为null,城市实际上位于地理定位的"子管理员"部分.地址本身是正确的.因此,如果您构建国际应用程序,您应该非常清楚地理编码器信息和可靠性不可靠. (5认同)