Обратное геокодирование не показывает адрес
Я использовал обратное геокодирование из Google Maps, чтобы получить адрес, и в первый раз, когда он работал, полностью поместил адрес, но теперь он показывает только широту и долготу, без имени, в любом адресе.
Кто-нибудь может мне помочь?
Мой код:
private class GetAddressTask extends AsyncTask<Location, Void, String> {
@Override
protected String doInBackground(Location... params) {
Geocoder geocoder = new Geocoder(MainActivity.this);
Location loc = params[0];
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);
} catch (IOException e) {
return null;
}
if( addresses != null && addresses.size() > 0 ) {
Address addr = addresses.get(0);
String addressText = addr.getAddressLine(0);
updateLastStreet(addressText, MainActivity.this);
return addressText;
}
return null;
}
}
1 ответ
Вам не хватает разрешения в файле Android.Manifest, затем добавьте это
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
И попробуйте этот метод:
public List<Address> getAddress(LatLng point) {
try {
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(this);
if (point.latitude != 0 || point.longitude != 0) {
addresses = geocoder.getFromLocation(point.latitude ,
point.longitude, 1);
String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getAddressLine(1);
String country = addresses.get(0).getAddressLine(2);
return addresses;
} else {
Toast.makeText(this, "Coordinates are null",
Toast.LENGTH_SHORT).show();
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}