Главная » Разработка для Android » Геокодирование в приложении Where Am I?

0

С помощью геокодировщика можно определять адрес текущего ме- стоположения. В этом примере1  вы продолжите дополнять проект Where Am I? — внесете в него получение и обновление текущего адреса при пере- мещении устройства.

Начните с редактирования манифеста, добавив полномочия на исполь- зования Интернета:

<uses-permission android:name="android.permission.INTERNET"/>

Следующий шаг — откройте  Активность WhereAmI. Отредактируйте метод updateWithNewLocation, чтобы инициализировать новый объект

1     Все фрагменты  кода в этом примере — часть проекта Where  Am I? из главы 8, их можно загрузить с сайта Wrox.com.

Geocoder  и вызвать  метод getFromLocation, передав ему только что полу- ченное местоположение и ограничив количество  адресов до одного.

Извлеките все строки в адресе, а также район, почтовый индекс и страну, добавьте эту информацию к ранее созданной строке в TextView.

private void updateWithNewLocation(Location location) { String latLongString;

TextView myLocationText;

myLocationText = (TextView)findViewById(R.id.myLocationText);

String addressString = "No address found";

if (location != null) {

double lat = location.getLatitude(); double lng = location.getLongitude(); latLongString = "Lat:" + lat + "\nLong:" + lng;

1);

double latitude = location.getLatitude();

double longitude = location.getLongitude();

Geocoder gc = new Geocoder(this, Locale.getDefault());

try {

List<Address> addresses = gc.getFromLocation(latitude, longitude,

StringBuilder sb = new StringBuilder();

if (addresses.size() > 0) {

Address address = addresses.get(0);

for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {

sb.append(address.getAddressLine(i)).append("\n");

sb.append(address.getLocality()).append("\n"); sb.append(address.getPostalCode()).append("\n"); sb.append(address.getCountryName());

}

}

addressString = sb.toString();

} catch (IOException e) {}

} else {

latLongString = "No location found";

}

myLocationText.setText("Your Current Position is:\n" +

latLongString + "\n" + addressString);

}

При запуске приложение должно выглядеть, как на рис. 8.3.

Рис. 8.3.

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии