Я использую Android Geocoding, чтобы получить текущий город с помощью метода Address.getLocality (). Он работал нормально, до недавнего времени он часто возвращал значение null для местоположения. Вот пример:
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);
}
Теперь для первого возвращенного адреса регистрируется следующее сообщение:
Locality null (Address [addressLines = [0: «14-18 Park Vista», 1: «London Район Гринвич, Лондон SE10 ", 2:" UK "], feature =, admin = null, sub-admin = null, locality = null, проезд = Park 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])
Некоторые местоположения действительно возвращают город в местности, в то время как места рядом с ним нет.
Раньше это действительно работало нормально, на самом деле я раньше не видел пустую локализацию. Думаю, что-то изменилось в сервисе геокодирования Google. Есть идеи, что происходит, и эта ситуация постоянна? Если да, то как лучше всего определить город по местоположению?