2013-07-31 4 views
5

Я пытаюсь получить адрес своего местоположения с помощью Google API v2.Геокодер getFromLocation() не имеет значения null, но имеет размер 0 всегда

Вот что я делаю:

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

Я прочитал несколько постов и обнаружил, что запрос getFromLocation() не всегда получить результат. Поэтому я пробовал это зацикливание.

Это не сбой, но адресText всегда «», любые идеи почему? Разрешения для Интернета предоставлены моему приложению. Я не использую GPS.

userLocation не является нулевым, так что это не проблема, я использую это, чтобы добавить маркер к карте, и он отлично работает. Кажется, проблема с геокодером строго.

+0

Вы пробовали увеличить количество результатов? например 'address = geocoder.getFromLocation (userLocation.latitude, userLocation.longitude, 10);' Технически это не имеет значения, просто «интересно»! – iaindownie

+0

Нет, к сожалению, это не работает. но спасибо за ваш быстрый ответ :) –

ответ

5

Вы можете получить адрес на два метода 1. Использование Geocoder 2. Использование Google API

Вы можете получить решение по этой ссылке. Он имеет оба решения. Посетите мой ответ для решения Google API.

Get the particular address using latitude and longitude

+0

Я проверил ваш ответ, у меня вопрос, какой тип объекта parser_Json? –

+0

его класс анализа JSON. Он возвращает объект JSON из заданного URL-адреса. –

+0

каких-либо специальных импортов для этого? Я не могу найти его ... –

1

Я сведущий, чтобы решить эту проблему ... мой код бросает исключение службы не доступен на getFromLocation().

Подробности можно найти здесь: https://code.google.com/p/android/issues/detail?id=38009

я перезагрузил свой аппарат и теперь он работает нормально. Спасибо за вашу помощь!

-1

TRY Перезагрузка устройства! Мой код разбился на geocoder.getFromLocation (lat, lng, 1); и вызывает (IOException e) Однако после попытки многих разрешений, изменений кода и т. д., я просто включил/выключил свой телефон samsung, и это сработало ... Я думал, что ядро ​​Linux должно быть лучше, чем окна, т.е. не нужно перезагружать ??

0

Парни дважды проверяют, что вы не обменялись латами и длинными: D Я продолжал просить адрес в середине Атлантического океана, и мне потребовалось около 3 часов, чтобы понять.

Также с помощью эмулятора GPS вам необходимо запустить Google Maps хотя бы один раз, как только я нашел, чтобы инициализировать материал местоположения игровых сервисов.

Смежные вопросы