Estoy usando Android Geocoding para obtener la ciudad actual con el método Address.getLocality(). Ha funcionado bien, hasta hace poco, parece que a menudo devuelve nulo para la localidad. He aquí un ejemplo:Geocodificación inversa de Android getLocality devuelve a menudo nulo
try {
Geocoder c = new Geocoder(this, Locale.getDefault());
double lat = 51.481;
double lon = 0.0;
List<Address> l = c.getFromLocation(lat, lon, 5);
for (Address a: l) {
Log.i("GeocoderTest", "Locality " + a.getLocality() + " (" + a + ")");
}
} catch (IOException e) {
Log.e("GeocoderTest", "", e);
}
Esto ahora registra el siguiente mensaje por primera dirección devuelta:
Localidad null (Dirección [addressLines = [0: "14-18 Park Vista", 1: "London Municipio de Greenwich, Londres SE10", 2: "UK"], función =, admin = null, subadministrador = null, localidad = null, vía = Parque Vista, postalCode = null, countryCode = GB, countryName = United Kingdom, hasLatitude = true, latitude = 51.4819069, hasLongitude = true, longitude = -6.327E-4, phone = null, url = null, extras = null])
Algunas ubicaciones devuelven la ciudad en la localidad, mientras que una ubicación junto a ella no.
Así que funcionó muy bien antes, en realidad no había visto una localidad nula antes. Así que supongo que algo debe haber cambiado en el servicio de geocodificación de Google. ¿Alguna idea de lo que está pasando, y esta situación es permanente? En caso afirmativo, ¿cuál sería la mejor manera de determinar la ciudad desde una ubicación?
Gracias por el fragmento. Esto es mejor que tener valor nulo :) – Alex