2013-07-31 5 views
5

Ich versuche meine Standortadresse mit Google API v2 zu ermitteln. HierGeocoder getFromLocation() ist nicht null, hat aber die Größe 0 immer

ist, was ich tun:

Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
      List<Address> addresses = null; 
      String addressText = ""; 
      try { 
       while (addresses==null){ 
        addresses = geocoder.getFromLocation(userLocation.latitude, 
          userLocation.longitude, 1); 
       } 

       if (addresses != null && addresses.size() > 0) { 
        Address address = addresses.get(0); 
        addressText = String.format(
          "%s, %s, %s", 
          address.getMaxAddressLineIndex() > 0 ? address 
            .getAddressLine(0) : "", address 
            .getLocality(), address.getCountryName()); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

ich mehrere Beiträge und fand gelesen haben, dass die getFromLocation() Anfrage nicht immer ein Ergebnis abrufen. Also habe ich versucht, das zu loopen.

Dies stürzt nicht ab, aber addressText ist immer "", irgendwelche Ideen warum? INTERNET-Berechtigungen wurden meiner App erteilt. Ich benutze kein GPS.

userLocation ist nicht null, das ist also nicht das Problem, ich verwende das, um eine Markierung zur Karte hinzuzufügen, und es funktioniert gut. Es scheint ein Problem mit dem Geocoder zu sein.

+0

Haben Sie versucht, die Anzahl der Ergebnisse zu erhöhen? z.B. 'addresses = geocoder.getFromLocation (userLocation.latitude, userLocation.longitude, 10);' Technisch sollte das egal sein, nur 'interessiert'! – iaindownie

+0

Nein, leider funktioniert das nicht. aber danke für Ihre schnelle Antwort :) –

Antwort

5

Sie können Adresse, die durch zwei Verfahren 1. Mit Geocoder 2. Mit Google API

Sie erhalten Ihre Lösung aus diesem Link. Es hat beide Lösungen. Besuchen Sie meine Antwort für Google API-Lösung.

Get the particular address using latitude and longitude

+0

Ich habe Ihre Antwort überprüft, ich habe eine Frage, welche Art von Objekt ist Parser_Json? –

+0

ist eine JSON Parsing-Klasse. Es gibt JSON-Objekt von der angegebenen URL zurück. –

+0

irgendwelche speziellen Importe dafür? Ich kann es nicht finden ... –

1

ich manged dieses Problem zu lösen ... mein Code wurde eine Ausnahme von Dienst nicht verfügbar auf getFromLocation werfen().

Details finden Sie hier: https://code.google.com/p/android/issues/detail?id=38009

ich mein Gerät neu gestartet und es funktioniert jetzt. Danke für deine Hilfe!

-1

TRY Neustartgerät! Mein Code stürzte auf dem geocoder.getFromLocation ab (lat, lng, 1); und verursacht (IOException e) Jedoch nach dem Ausprobieren vieler Berechtigungen, Code ändert etc, ich einfach an/aus meinem Samsung-Handy und es funktionierte ... Ich dachte Linux Kernal sollte besser sein als Windows, dh keinen Neustart benötigen ??

0

Jungs überprüfen Sie, dass Sie nicht Ihre Lat und Longs ausgetauscht haben: D Ich fragte nach einer Adresse in der Mitte des Atlantischen Ozeans und es dauerte etwa 3 Stunden zu realisieren.

Auch mit Emulator GPS müssen Sie Google Maps mindestens einmal starten, die ich gefunden habe, um den Standort des Spiels Dienstleistungen zu initialisieren.