使用地理codeR返回的选定城市的android的所有街道名称的列表街道、地理、名称、城市

2023-09-03 22:27:04 作者:紫色蒲公英

如果我有被检索到的城市:

if i have a city retrieved by:

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

有没有办法使用谷歌地图API来获得在选定城市的所有街道名称列表?

Is there any way to get list of all street names in a selected town using the 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));

这将返回(例如):纽约第五街3924.And它不是在所有的城市街道迭代

this returns (for example): new york, 5th street 3924.And it doesn't iterate on all city streets.

推荐答案

我想你要找的是这样的:

I think what your looking for is this:

getFromLocationName(字符串LOCATIONNAME,诠释maxResults)

从文档:

返回已知地址来描述命名的数组   的位置,这可以是地名,例如的Dalvik,冰岛,一个   解决诸如1600剧场百汇,加州山景城,一个   机场code,如证券及期货条例,等返回的地址将是   本地化的服务提供给这个类的构造函数中的语言环境。

Returns an array of Addresses that are known to describe the named location, which may be a place name such as "Dalvik, Iceland", an address such as "1600 Amphitheatre Parkway, Mountain View, CA", an airport code such as "SFO", etc.. The returned addresses will be localized for the locale provided to this class's constructor.

查询将阻止和返回的值将通过方法获得   网络查找。结果是一个最好的猜测,并不能保证   要有意义或正确的。它可能是从调用此方法有用   从主UI线程一个线程中分离出来。

The query will block and returned values will be obtained by means of a network lookup. The results are a best guess and are not guaranteed to be meaningful or correct. It may be useful to call this method from a thread separate from your primary UI thread.

要获得街道名称使用这个(我想你已经知道这一点):

to get the Street name use this(I think you already know this):

  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); 
    }
  }

希望它帮助:)

hope it helps :)

 
精彩推荐
图片推荐