#android #gps #location
#Android #gps #Расположение
Вопрос:
на основе этого руководства:http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial /. Теперь я могу получить широту и дальность на основе местоположения. Теперь я пытаюсь получить точный адрес с помощью геокодера: (Main — это код класса, к которому принадлежит приведенный выше)
GPSTracker GPS = new GPSTracker(Main.this);
double latitude = GPS.getLatitude();
double longitude = GPS.getLongitude();
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(Main.this, Locale.getDefault());
addresses = geocoder.getFromLocation(latitude, longitude, 1);
String address = addresses.get(0).getAddressLine(0);
LogCat сообщает:
07-06 11:29:41.911: W/System.err(1670): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
Интересно, что я делаю не так?
Комментарии:
1. размер
addresses
равен 0, поэтому вы не можете получить первый индекс2. означает ли это, что геокодеру не удается заполнить список из местоположения или неправильное объявление списка?
3. Я думаю, что первая идея верна, перед получением адреса проверьте размер списка, если больше 0, то получите ваши данные,
4. Хорошо бы предотвратить ошибку, но я все еще не получаю строку адреса, поскольку размер списка по-прежнему равен 0
5. проверьте
getFromLocation
функцию с помощью Google API ( developers.google.com/maps/documentation/geocoding/?csw=1 )
Ответ №1:
GPSTracker GPS = new GPSTracker(Main.this);
double latitude = GPS.getLatitude();
double longitude = GPS.getLongitude();
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(Main.this, Locale.getDefault());
addresses = geocoder.getFromLocation(latitude, longitude, 1);
if(addresses!=null amp;amp; addresses.size()!=0){
String address = addresses.get(0).getAddressLine(0);
}
//если(addresses!=null amp;amp; addresses.size()!=0) … проверьте эту часть..ваш адрес не может быть нулевым, а размер массива не должен быть равен нулю…
Комментарии:
1. если (addresses!=null amp;amp; addresses.size()!=0) … проверьте эту часть.. ваш адрес не может быть нулевым, а размер массива не должен быть равен нулю…