Геокодер не работает по getfromlocationName

Мой код выглядит следующим образом:

Geocoder geocoder = new Geocoder(this,Locale.UK );
         List<Address> addresses = null;
         Toast.makeText(displaybyName.this, "country: before " , Toast.LENGTH_SHORT).show(); 
   try {
    Toast.makeText(displaybyName.this, "country: before " , Toast.LENGTH_SHORT).show(); 

    addresses = geocoder.getFromLocationName( 
      "Camden", 1);

    if (addresses.size() > 0) {

           geopoint = new GeoPoint(
                         (int) (addresses.get(0).getLatitude() * 1E6), 
                         (int) (addresses.get(0).getLongitude() * 1E6));

           //Animating on display

           mapcontroller.animateTo(geopoint);
           mapcontroller.setZoom(5); 
           mapview.invalidate();
          } 


   } catch (IOException io) {
    // TODO Auto-generated catch block
    Toast.makeText(displaybyName.this, "Connection Error", Toast.LENGTH_SHORT).show();
   }

   if (addresses.size() > 0) {

          geopoint = new GeoPoint(
                        (int) (addresses.get(0).getLatitude() * 1E6), 
                        (int) (addresses.get(0).getLongitude() * 1E6));

          //Animating on display

          mapcontroller.animateTo(geopoint);
          mapcontroller.setZoom(5); 
          mapview.invalidate();
         } 

Однако приложение каждый раз вылетает. Геокодер не возвращает широту/долготу.

Есть ли какие-либо проблемы с кодами ... plz, plz, посоветуйте.


person Kam    schedule 24.01.2011    source источник
comment
сбой - нам нужно больше деталей об ошибке (описание, трассировка стека, ...)   -  person Andreas Dolk    schedule 24.01.2011
comment
Вам действительно нужно найти ошибку в окне LogCat (с точки зрения DDMS, если вы не видите ее иначе)   -  person Dan Kilpatrick    schedule 16.06.2011
comment
Кроме того, вы, кажется, повторяете свою логику IF, один раз внутри try-catch и один раз после.   -  person Dan Kilpatrick    schedule 16.06.2011


Ответы (2)


Дважды проверьте это

addresses = geocoder.getFromLocationName("Camden", 1);

возвращает что-то, что не null - иначе: следующая строка вызовет NullPointerException


Дополнительная литература

person Andreas Dolk    schedule 24.01.2011
comment
Спасибо, я пробовал несколько разных адресов, но мое приложение все равно падает. Я проверил разрешения на файлы манифеста, и, похоже, все в порядке. У меня есть несколько адресов из лондонского города, и мне нужно получить их координаты, чтобы отобразить их на карте. Есть ли другой способ сделать это, потому что функция геокодера не работает. - person Kam; 25.01.2011
comment
При попытке получить координаты из адреса программа вылетает на эмуляторе. Ошибку не вижу. Для класса Geocoder требуется серверная служба, которая не включена в базовую платформу Android. Сооо, я теперь в замешательстве. Что мне нужно вызывать, импортировать, добавлять, использовать в коде.... чтобы это работало? Я использую Google Api2.2, уровень API 8. Если кто-то нашел решение для этого или указатель на документацию, что-то, чего я не обнаружил, сообщите нам об этом. Спасибо за уделенное время. - person Kam; 25.01.2011

Существует проблема с версией Android, потому что геокодер не поставляется с основной структурой Android, но он будет нормально работать в старых и новых версиях, таких как 1.6, 2.0 и уровень API 15. класс геокодера с использованием JSON.

person neo anderson    schedule 11.01.2013