Я использую 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);
}
Теперь для журнала будет отправлено следующее сообщение:
Локальность null (Адрес [адресLines = [0: "14-18 Park Vista", 1: "Лондон Город Гринвич, Лондон SE10", 2: "UK" ], функция =, админ = NULL, суб-админ = NULL, местонахождение = нуль, проездом = Park Виста, PostalCode = нуль, COUNTRYCODE = GB, COUNTRYNAME = United Великобритания, hasLatitude = верно, широта = 51.4819069, hasLongitude = истина, долгота = -6.327E-4, телефон = нуль, URL = нуль, дополнительные = NULL])
Некоторые местоположения возвращают город в местности, а рядом с ним нет.
Таким образом, он работал очень хорошо раньше, на самом деле я раньше не видел нулевой локали. Поэтому, я думаю, что-то должно измениться в службе геокодирования Google. Любая идея, что происходит, и является ли эта ситуация постоянной? Если да, то каким будет лучший способ определить город из местоположения?