2013-07-31 8 views
5

Próbuję pobrać mój adres lokalizacji przy użyciu interfejsu Google API v2.Geocoder getFromLocation() nie ma wartości null, ale ma rozmiar 0 zawsze

Oto co mam zrobić:

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

Przeczytałem kilka postów i stwierdził, że żądanie getFromLocation() nie zawsze pobrać wynik. Więc próbowałem tego zapętlić.

To nie ulega awarii, ale addressText jest zawsze "", wszelkie pomysły, dlaczego? Uprawnienia do internetu zostały przyznane mojej aplikacji. Nie używam GPS.

UserLocation nie jest pusta, więc to nie jest problem, używam tego, aby dodać znacznik do mapy i działa dobrze. Wydaje się, że problem z geokoderem jest ściśle ograniczony.

+0

Czy próbowałeś podnieść liczbę wyników? na przykład 'addresses = geocoder.getFromLocation (userLocation.latitude, userLocation.longitude, 10);' Technicznie to nie powinno mieć znaczenia, po prostu 'zainteresowany'! – iaindownie

+0

Nie, niestety to nie działa. ale dzięki za szybką odpowiedź :) –

Odpowiedz

5

Można uzyskać adres przez dwa metoda 1. Używając geocoder 2. Korzystanie z Google API

Możesz otrzymać roztwór z tego linka. Ma oba rozwiązania. Odwiedź moją odpowiedź na rozwiązanie Google API.

Get the particular address using latitude and longitude

+0

Sprawdziłem twoją odpowiedź, mam pytanie, jaki typ obiektu to parser_Json? –

+0

to klasa JSON Parsing. Zwraca obiekt JSON z podanego adresu URL. –

+0

żadnych specjalnych importów do tego? Nie mogę go znaleźć ... –

-1

TRY Ponowne uruchomienie urządzenia! Mój kod się zawiesza na geocoder.getFromLocation (lat, lng, 1); i powodując (IOException e) Jednak po wypróbowaniu wielu uprawnień, zmian kodu itp. po prostu włączałem/wyłączałem mój telefon Samsung i działało ... Myślałem, że kernal Linuksa powinien być lepszy od Windowsa, tzn. nie wymagający restartu?

0

Faceci podwójnie sprawdzili, czy nie zamieniliście lat i tęsknot: D Zapytałem o adres na środku Oceanu Atlantyckiego i zajęło mi to około 3 godzin.

Również z emulatorem GPS musisz uruchomić Mapy Google co najmniej raz, znalazłem, aby zainicjować rzeczy lokalizacji usług odtwarzania.

Powiązane problemy