缩小地理编码器地址仅限于城市

joe*_*guy 3 android reverse-geocoding

我有一个地理编码器,gcd和这行代码反向地理编码

List<Address> addresses = gcd.getFromLocation(latitude, longitude, 1);
                    if(addresses != null) {
                        Address returnedAddress = addresses.get(0);

                        for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
                       strReturnedAddress = (returnedAddress.getAddressLine(i)).toString();
Run Code Online (Sandbox Code Playgroud)

strReturnedAddress返回类似的东西

10453 Central Bronx,New York City,NY

我只需要城市名称,即纽约市.

删除部分字符串将非常困难,因为地理编码的输出可能会发生变化.我只需要地理编码给我这个城市.

我查了http://developer.android.com/reference/android/location/Geocoder.html但找不到答案.

Dem*_*ian 5

很高兴您自己找到了解决方案.

您可能希望使用下面的方法,这更简单,因为它使用Location API而不必遍历地址列表:

Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(this, Locale.getDefault());
addresses = geocoder.getFromLocation(latitude, longitude, 1);

String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getAddressLine(1);
String country = addresses.get(0).getAddressLine(2);
Run Code Online (Sandbox Code Playgroud)

即使这个代码是由另一个用户提供的,我自己也实现了这种精确的方法,并发现它很有用.

希望这可以帮助.