1

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

这对我来说非常糟糕,因为我需要向我的用户展示他们在哪里,而且城市级别的位置非常不详细。跟我代码有关吗?或者是一些无法处理的异常。

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 "";
}
4

0 回答 0