使用Geocoder返回android中所选城市的所有街道名称列表

时间:2014-10-04 15:38:14

标签: android google-maps-android-api-2

如果我有一个城市检索:

Geocoder gcd = new Geocoder(context, Locale.getDefault());
Address address = gcd.getFromLocation(lat, lng, 1);

有没有办法使用google maps api获取所选城镇中所有街道名称的列表?

更新

Geocoder gcd = new Geocoder(this, Locale.getDefault());
        List<Address> addresses = null;
        try {
            addresses = gcd.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if (addresses.size() > 0)
            for (int i = 0; i < addresses.get(0).getMaxAddressLineIndex(); i++)
                Log.e("afaf", " " + addresses.get(0).getAddressLine(i));

返回(例如):new york,5th street 3924.并且它不会遍历所有城市街道。

1 个答案:

答案 0 :(得分:0)

我认为你在寻找的是:

getFromLocationName (String locationName, int maxResults)

来自文档:

  

返回已知用于描述命名的地址数组   位置,可能是地名,如&#34; Dalvik,Iceland&#34;,an   地址如&#34; 1600 Amphitheatre Parkway,Mountain View,CA&#34;,an   机场代码如&#34; SFO&#34;等。返回的地址将是   本地化为提供给此类的构造函数的语言环境。

     

查询将阻止并返回值将通过以下方式获得   网络查找。结果是最佳猜测,无法保证   有意义或正确。从中调用此方法可能很有用   与主UI线程分开的线程。

获取街道名称使用此(我想你已经知道了):

  for(int a = 0 ; a < addresses.size() ; a++){
    Address address = addresses.get(a);
    for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
       // get address like address.getAddressLine(i); 
    }
  }

希望它有所帮助:)