Как использовать волшебный класс геокодера

Как мы можем преобразовать географические координаты в удобочитаемые адреса? С помощью Android Geocoder API! Давайте погрузимся.

«Развивайте страсть к обучению. Если вы это сделаете, вы никогда не перестанете расти ».

- Энтони Дж. Д’Анджело

Что такое геокодер?

Это класс для обработки геокодирования и обратного геокодирования.

  • Геокодирование - это процесс преобразования адреса улицы или другого описания местоположения в координаты (широта, долгота).
  • Обратное геокодирование - это процесс преобразования координаты (широты, долготы) в (частичный) адрес.

Что я собираюсь использовать

  • Android Geocoder класс
  • Котлин (язык программирования)
  • Просмотр привязки
  • MVVM (Архитектурный шаблон)


Обзор

Самое замечательное здесь то, что я использую класс Geocoder с Google Maps. Во многих приложениях, таких как Uber и Careem, вы могли заметить, что, когда пользователь перетаскивает / перемещается по карте с помощью булавки для выбора своего местоположения, адрес на верхней панели соответственно изменяется. Эта функция может быть реализована с помощью обратного геокодирования.

Шаг 1

Создайте проект и добавьте ключ API Карт Google, следуя документации:



Я создаю простой макет с MapView:

Шаг 2

Geocoder имеет два метода:

  • getFromLocation: Принимает широту и долготу и дает массив адресов, известных по соответствующей широте и долготе.
  • getFromLocationName: принимает имя адреса в качестве входных данных (например, 1600 Amphitheatre Parkway) и предоставляет массив адресов, которые, как известно, соответствуют этому адресу.

Я использую getFromLocation, , поскольку конвертирую широту и долготу в читаемый адрес:

Я получаю данные о местоположении, используя LoadDataCallback в действии.

Шаг 3

Давайте посмотрим на Geocoder в действии:

Согласно документации Google, onCameraIdle() вызывается, «когда движение камеры закончилось, ожидающих анимаций нет, и пользователь прекратил взаимодействие с картой».

Поскольку я здесь использую MVVM, данные отображаются через viewModel. Вот класс ViewModel:

Теперь запустите приложение, и вы увидите волшебство!

Заключение

Надеюсь, вы узнали что-то новое. Спасибо за прочтение. Удачного кодирования!

Вы можете найти полный исходный код ниже:



Следуйте CodixLab для получения дополнительных технических знаний.

Подробнее:

  1. Создайте список с множественным выбором с помощью RecyclerView
  2. Полное руководство по привязке данных Android (часть первая)