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 zu überprüfen, ob ein Standort Koordinaten fallen zu einem anderen Ort Koordinaten Radius in Android
  • DialogFragment mit einem benutzerdefinierten Layout verursacht einen Absturz in meiner Anwendung
  • Schnellere GPS-Fix in Android
  • Wie man Text an Google Voice SMS programmgesteuert weitergibt?
  • Android google analytics v3: "Service nicht verfügbar"
  • Warum seltsame Namenskonvention von "AlertDialog.Builder" anstelle von "AlertDialogBuilder" in Android
  • 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: Wie kann man sich auf irgendetwas ziehen (jede Aktivität)
  • Android Erhalten Sie den aktuellen Zeitstempel?
  • Android Animation nicht wiederholen
  • Kotlin Gradle Ausgabe
  • Empfangen einer ACTION_SEND-Absicht aus der Galerie
  • Das Ändern von ImageView-Inhalten verursacht OutOfMemoryError
  • 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.