Получить текущий адрес местоположения для приложения для Android

17

Мне не нужно отображать карту. Тем не менее, мне нужно использовать сеть gps / 3g, чтобы найти мои текущие позиции ADDRESS (не долго и лат), затем это будет добавлено к автоматизированному ответу sms, чтобы сообщить человеку, что я в настоящее время не могу ответить, & amp; укажите строковый адрес моего текущего местоположения. У меня есть работа sms, просто нужно выяснить способ доступа к gps и потянуть адрес. Я видел пример кода для lat / long. Возможно, мне нужно преобразовать lat / long в адрес в API карт google? Я не знаю, как это сделать. Любые советы / фрагменты кода / похожие учебники приветствуются! Благодарю. :)     

задан GrumP 17.02.2011 в 13:18
источник

3 ответа

25

Для этого есть два шага:

  1. Получить текущее местоположение - широта и amp; долгота, используя GPS, сеть, последнее известное местоположение и т. д. Android документация о местоположении содержит пример кода.

  2. Используйте класс Geocoder , чтобы запросить поиск для преобразования lat / долго до адреса (из которого вы можете легко извлечь город, страну, улицу и т. д.). В частности, вам нужно использовать метод getFromLocation ()

Примечание:

  • Метод getFromLocation () возвращает SET совпадений. В некоторых сценариях вы можете показать пользователю набор (скажем, 5) и позволить им выбрать лучший, или вы можете просто использовать первый, считая, что это лучше всего.
  • Помните, что оба этих вызова могут занять некоторое время. GPS / сеть может занять некоторое время, чтобы обеспечить местоположение. Аналогично, вызов getFromLocation () может занять некоторое время, так как он переходит через сеть в API Карт Google. Поэтому крайне важно, чтобы вы использовали обширную обработку ошибок для различных сценариев И что оба этих вызова перемещаются в отдельный поток, поэтому вы не блокируете пользовательский интерфейс приложения (смотрите в AsyncTask).
  • Бэкэнд класса Geocoder присутствует только на устройствах, одобренных Google. Таким образом, поиск будет в основном неудачным на любом устройстве, которое не имеет GMail / Market / Maps на нем.
ответ дан Ollie C 17.02.2011 в 13:44
источник
14

Ответ здесь: Ссылка

Вам нужно создать объект Geocoder и вызвать getFromLocation(double latitude, double longitude, int maxResults)

Geocoder gCoder = new Geocoder(myContext);
ArrayList<Address> addresses = gCoder.getFromLocation(123456789, 123456789, 1);
if (addresses != null && addresses.size() > 0) {
    Toast.makeText(myContext, "country: " + addresses.get(0).getCountryName(), Toast.LENGTH_LONG).show();
}
    
ответ дан WarrenFaith 17.02.2011 в 13:43
источник
0

Как вы знаете, для получения адреса местоположения вы можете использовать google GeoCoder

кроме того, чтобы получить адреса местоположения, предоставив широту и долготу, вы можете использовать этот API. Это надежнее и быстрее, чем google Geocoder.Here я присоединяю ссылку и небольшой пример ...

URL-адрес API -

  

Ссылка

вы можете объединить значение широты и долготы рядом с равным знаком в URL-адресе.

example -

lat = 6.123456

lng = 79.123456

String url =

  

" Ссылка ", "+ lng";

это будет возвращать хороший jsonObject , и вы можете играть с ним, просто попробуйте это. В настоящее время я использую этот API для своих служб определения местоположения и его быстрее, чем обычно. geoCoder API. Чтобы поймать ответ json, вы можете использовать volley или что-то еще. Хорошее кодирование.

    
ответ дан Ashana.Jackol 21.08.2017 в 14:19
источник