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