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:

  • Wie kann ich programmgesteuert eine bestimmte Anwendung in Android starten?
  • Wie kann man die Geste auf dem Recycler ausführen
  • Android Verhindern des Bluetooth-Pairing-Dialogs
  • Holen Sie sich die Prüfsumme der Quellcodes in der Android-Bibliothek
  • Android Gradle Plugin 0.7.0: "doppelte Dateien während der Verpackung von APK"
  • So entfernen Sie den Fokus aus dem einzigen editText
  • 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?

  • Android Studio: Gradle build fails - Ausführung fehlgeschlagen für Task ': compileDebugAidl'
  • Android-Bildschirm Bildschirmgröße
  • Android Imageview füllen die Bildschirmbreite
  • Synchronisierung von Daten zwischen Android App und Webserver
  • Können Sie grafische Layout-Vorschau-Text auf einem TextView setzen?
  • Überlagern einer Aktivität auf einer anderen Aktivität ODER Überlagerung einer Ansicht über eine andere
  • 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.