Как получить адрес из текущего местоположения из setMyLocationEnabled (true); - PullRequest
1 голос
/ 29 января 2020

В своем проекте я использовал Google Maps Activity и для получения текущего местоположения пользователя я использовал setMyLocationEnabled(this); метод, чтобы получить местоположение. И когда я пытался извлечь широту и долготу из этого местоположения, он выдает ошибку говорит нулевая ссылка на объект.

Я посмотрел много видео на YouTube и изучил много вопросов о переполнении стека и блогах, но не могу найти подходящий код для этого. Некоторые используют устаревшие методы, а некоторые go далеко за пределами topi c.

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

Помогите мне подсказать, что делать и как добиться того, что я застрял с этим за последние 4 дня.

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Вы можете использовать getFromLocation из Геокодер .

Пример кода.

Geocoder geocoder = new Geocoder(context, Locale.getDefault());
try {
    List<Address> addressList = geocoder.getFromLocation(
            latitude, longitude, 1);
    if (addressList != null && addressList.size() > 0) {
        Address address = addressList.get(0);
        StringBuilder sb = new StringBuilder();
        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());
        String result = sb.toString();
    }
} catch (IOException e) {
    Log.e(TAG, "Unable connect to Geocoder", e);
}
0 голосов
/ 29 января 2020

Обратное геокодирование - это то, что вы ищете. Геокодер * Можно использовать класс Посмотрите на это Android: обратное геокодирование - getFromLocation

Это даст вам представление об использовании обратного геокодирования

...