Обратное геокодирование Android getLocality часто возвращает null

Я использую 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. Есть идеи, что происходит, и эта ситуация постоянна? Если да, то как лучше всего определить город по местоположению?

18
задан ketorin 28 December 2011 в 22:09
поделиться