2017-01-25 1 views
1

Я работаю с Geocoder найти точный адрес местоположения с помощью latitude и longitude, но она не поддерживает в lollipop и вышеКак получить адресное местоположение в леденец и выше, используя широту и долготу?

Geocoder geo = new Geocoder(getApplicationContext(), Locale.getDefault()); 
String mylocation; 
if (Geocoder.isPresent()) { 
try { 
    List <Address> addresses = geo.getFromLocation(location.getLatitude(), location.getLongitude(), 1); 
    if (addresses != null && addresses.size() > 0) { 
    Address address = addresses.get(0); 
    String addressText = String.format("%s, %s, %s", 
    // If there's a street address, add it 
    address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "", 
    // Locality is usually a city 
    address.getLocality(), 
    // The country of the address 
    address.getCountryName()); 
    mylocation = "Lattitude: " + location.getLatitude() + " Longitude: " + location.getLongitude() + "\nAddress: " + addressText; 
    address1.setText(addressText); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
} 
+0

что вы пробовали? Есть ли сообщение об ошибке или код, который вы можете предоставить? – hering

ответ

3

Вы можете использовать следующий код для Адреса:

//Set Address 
try { 
    List <Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1); 
    if (addresses != null && addresses.size() > 0) { 
    String address = addresses.get(0).getAddressLine(0) + " " + addresses.get(0).getAddressLine(1); 
    if (address != null) { 
    textViewAddress.setText(address); 
    } else { 
    textViewAddress.setText("Not Available"); 
    } 

    String city = addresses.get(0).getAddressLine(2); 
    if (city != null) { 
    textViewCity.setText(city); 
    } else { 
    textViewCity.setText("Not Available"); 
    } 

    String state = addresses.get(0).getAdminArea(); 
    if (state != null) { 
    textViewState.setText(state); 
    } else { 
    textViewState.setText("Not Available"); 
    } 

    String country = addresses.get(0).getCountryName(); 
    if (country != null) { 
    textViewCountry.setText(country); 
    } else { 
    textViewCountry.setText("Not Available"); 
    } 

    System.out.println("Address >> " + address + " " + " \n" + state + " \n" + country); 

    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

Или

String address = addresses.get(0).getAddressLine(0); // If any additional address line present than only, check with max available address lines by getMaxAddressLineIndex() 
String city = addresses.get(0).getLocality(); 
String state = addresses.get(0).getAdminArea(); 
String country = addresses.get(0).getCountryName(); 
String postalCode = addresses.get(0).getPostalCode(); 
String knownName = addresses.get(0).getFeatureName(); // Only if available else return NULL 

обратитесь по следующей ссылке: Get Address

+0

Я пробовал это, оба не работают в леденцах и выше. Есть ли другой путь. пожалуйста, помогите – Jincy

+0

@ Jincy: Я запустил ваш код в своем проекте и его отлично работает на устройстве Marshmallo. Я получаю свой лат, язык и адрес должным образом. Можете ли вы, пожалуйста, определите свою проблему? – BK19

+0

is google api key необходим для этой программы – Jincy

 Смежные вопросы

  • Нет связанных вопросов^_^