1

Location を address(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 "";
}
4

0 に答える 0