位置到一个地址

时间:2013-01-25 14:43:14

标签: java android geocoding

我正在使用以下代码将位置转换为地址(String)。 它工作正常,但有时返回的字符串是城市级别,例如:“以色列,特拉维夫”。

这对我来说非常糟糕,因为我需要向用户展示他们所在的位置,并且城市级别的位置非常详尽。这跟我的代码有什么关系?或者是一些无法处理的例外情况。

public String reverseGeocode(Location loc) 
{
    Geocoder geocoder = new Geocoder(this, Locale.getDefault());

    List<Address> addresses = null;
    try {
        addresses = geocoder.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);
    } catch (IOException e) {
        e.printStackTrace();
        // Update address field with the exception.
        return e.toString();
    }
    if (addresses != null && addresses.size() > 0) 
    {
        Address address = addresses.get(0);
        // Format the first line of address (if available), city, and country name.
        String addressText = String.format("%s, %s, %s",
                address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "",
                address.getLocality(),
                address.getCountryName());
        // Update address field on UI.
       // Message.obtain(mHandler, UPDATE_ADDRESS, addressText).sendToTarget();
        return addressText;
    }
    return "";
}

0 个答案:

没有答案