2015-03-26 2 views
-1

Я хочу получить адрес местонахождения от LatLng
Я пробовал несколько способов, но я не получил ответа, потому что кажется, что эта служба закрыта Google, поэтому я получаю ошибку тайм-аута, когда я использую следующий код , есть ли другое решение?Как я могу получить адрес от LatLng

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

ответ

0
private String getCompleteAddressString(double LATITUDE, double LONGITUDE) { 
      String strAdd = ""; 
      Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
      try { 
       List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1); 
       if (addresses != null) { 
        Address returnedAddress = addresses.get(0); 
        StringBuilder strReturnedAddress = new StringBuilder(""); 

        for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) { 
         strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n"); 
        } 
        strAdd = strReturnedAddress.toString(); 
        Log.w("My Current loction address", "" + strReturnedAddress.toString()); 
       } else { 
        Log.w("My Current loction address", "No Address returned!"); 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
       Log.w("My Current loction address", "Canont get Address!"); 
      } 
      return strAdd; 
     } 

Попробуйте эту функцию, он работает нормально.

0

Это работает нормально, проверьте приведенный ниже код и сохранить свой метод geocoder.getFromLocation() в блоке Ьгу Click Here

0

Попробуйте один

public static String getAddressInString(Context context, LatLng latLng) { 
    Geocoder geocoder = new Geocoder(context, Locale.getDefault()); 
    try { 
     List<Address> addresses = geocoder.getFromLocation(latLng.latitude, latLng.longitude, 1); 
     if (addresses != null && addresses.size() > 0) { 
      return convertToString(addresses.get(0)); 
     } else { 
      return ""; 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return ""; 
} 

public static String convertToString(Address obj) { 
    String add = ""; 
    if (obj == null) 
     return ""; 
    add = obj.getAddressLine(0); 
    if (obj.getSubAdminArea() != null) 
     add = add + "\n" + obj.getSubAdminArea(); 
    if (obj.getPostalCode() != null) 
     add = add + " - " + obj.getPostalCode(); 
    if (obj.getAdminArea() != null) 
     add = add + "\n" + obj.getAdminArea(); 
    if (obj.getCountryName() != null) 
     add = add + "\n" + obj.getCountryName(); 
    return add; 
} 
Смежные вопросы