Android Reverse Geocoding getLocality gibt oft Null zurück

Ich benutze Android Geocoding, um die aktuelle Stadt mit der Adresse Address.getLocality () zu erhalten. Es hat gut geklappt, bis erst vor kurzem scheint es oft zurückzukehren null für den Ort. Hier ist ein Beispiel:

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); } 

Dies protokolliert nun die folgende Meldung für die erste zurückgegebene Adresse:

Lokalisierung null (Adresse [AdresseLines = [0: "14-18 Park Vista", 1: "London Borough of Greenwich, London SE10", 2: "UK"], feature =, admin = null, sub-admin = null, Locality = null, Durchgang = Park Vista, postalCode = null, countryCode = GB, countryName = United Kingdom, hasLatitude = true, latitude = 51.4819069, hasLongitude = true, Längengrad = -6.327E-4, phone = null, url = null, Extras = null])

Einige Orte bringen die Stadt in die Ortschaft zurück, während ein Ort daneben nicht.

Also hat es schon mal gearbeitet, eigentlich hatte ich noch keinen null locality gesehen. Also ich vermute, dass sich etwas im Geocoding-Service von Google geändert haben muss. Irgendeine Idee, was los ist, und ist diese Situation dauerhaft? Wenn ja, was wäre der beste Weg, um die Stadt von einem Ort zu bestimmen?

  • Wie finde ich Kontinent in bestimmten Ort mit Geocoder in Android App
  • Erhalt der staatlichen Abkürzung von getAdminArea ();
  • Wie bekomme ich Stadtnamen aus Breiten- und Längengradkoordinaten in Google Maps?
  • Holen Sie sich aktuelle Standortadresse für Android App
  • Probleme mit android.location.geocoder
  • Ich möchte Google Map API für Reverse Geocode in Android analysieren
  • Wie bekomme ich Latitude Longitude von mehr als 500 Adressen?
  • Java.io.IOException: Die Antwort vom Server kann nicht auf getFromLocationName ()
  • 2 Solutions collect form web for “Android Reverse Geocoding getLocality gibt oft Null zurück”

    Jetzt lebe ich in Kanada, Ontario, Hamilton (Hamilton ist meine Stadt, Ontario ist die Provinz)

    Ich habe festgestellt, dass getLocality() null zurückgibt, und getAdminArea() gibt Ontario zurück und getSubLocality() gibt Hamilton zurück. CH

    Ich habe bemerkt, dass sehr oft getLocality () liefert null für die erste Adresse in der Liste, die von Geocoder zurückgegeben wird.
    Auf der anderen Seite bleibt der korrekte Stadtname am Ort einer nächsten Adresse.
    So verwende ich diesen Workaround und es funktioniert gut für große Städte:

      private String getCityNameByCoordinates(double lat, double lon) throws IOException { List<Address> addresses = mGeocoder.getFromLocation(lat, lon, 10); if (addresses != null && addresses.size() > 0) { for (Address adr : addresses) { if (adr.getLocality() != null && adr.getLocality().length() > 0) { return adr.getLocality(); } } } return null; } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.