- Полный список
- Прочее
- Как узнать свои координаты все способы
- Как узнать координаты на телефоне андроид
- Встроеный компас на Андройд
- Встроенные карты гугл Андройд
- Locus Map
- Карта Координаты
- Как узнать координаты на iPhone: Компас
- Как узнать координаты на Яндекс.Карты
- Как узнать координаты по Гугл Картам
- Узнать координаты на GPS-навигаторе Garmin GPSmap
- Как перевести координаты из одной системы в другую
Полный список
— получаем данные о местоположении
Android устройства могут предоставить нам данные по нашему текущему местоположению. Это, конечно, очень удобно и вовсю используется для, например, пользования картой, получения актуальной для вашей местности информации (прогноз погоды), всевозможных чекинов и пр.
Реализация этого всего вполне проста. Мы вешаем слушателя на провайдера и получаем данные. На данный момент есть два провайдера: GPS и Network.
GPS – тут все понятно, это данные с GPS-спутников.
Network – это координаты, которые можно получить через сотовую связь или WiFi. Для этого провайдера нужен инет.
Напишем простое приложение, которое будет запрашивать и отображать координаты.
Project name: P1381_Location
Build Target: Android 2.3.3
Application name: Location
Package name: ru.startandroid.develop.p1381location
Create Activity: MainActivity
В strings.xml добавим строки:
Несколько TextView, в которые мы будем выводить данные, и кнопка для открытия настроек местоположения.
В onCreate определяем TextView-компоненты и получаем LocationManager, через который и будем работать.
В onResume вешаем слушателя с помощью метода requestLocationUpdates. На вход передаем:
— тип провайдера: GPS_PROVIDER или NETWORK_PROVIDER
— минимальное время (в миллисекундах) между получением данных. Я укажу здесь 10 секунд, мне этого вполне хватит. Если хотите получать координаты без задержек – передавайте 0. Но учитывайте, что это только минимальное время. Реальное ожидание может быть дольше.
— минимальное расстояние (в метрах). Т.е. если ваше местоположение изменилось на указанное кол-во метров, то вам придут новые координаты.
— слушатель, объект locationListener, который рассмотрим ниже
Также здесь обновляем на экране инфу о включенности провайдеров.
В onPause отключаем слушателя методом removeUpdates.
locationListener – слушатель, реализует интерфейс LocationListener с методами:
onLocationChanged – новые данные о местоположении, объект Location. Здесь мы вызываем свой метод showLocation, который на экране отобразит данные о местоположении.
onProviderDisabled – указанный провайдер был отключен юзером. В этом методе вызываем свой метод checkEnabled, который на экране обновит текущие статусы провайдеров.
onProviderEnabled – указанный провайдер был включен юзером. Тут также вызываем checkEnabled. Далее методом getLastKnownLocation (он может вернуть null) запрашиваем последнее доступное местоположение от включенного провайдера и отображаем его. Оно может быть вполне актуальным, если вы до этого использовали какое-либо приложение с определением местоположения.
onStatusChanged – изменился статус указанного провайдера. В поле status могут быть значения OUT_OF_SERVICE (данные будут недоступны долгое время), TEMPORARILY_UNAVAILABLE (данные временно недоступны), AVAILABLE (все ок, данные доступны). В этом методе мы просто выводим новый статус на экран.
Провайдеры включаются и отключаются в настройках системы. Тем самым, просто определяется доступен ли провайдер для получения от него координат. Чуть позже увидим, как можно отправить юзера в эти настройки. Программное включение/выключение провайдеров через стандартные методы недоступно.
Далее идут свои методы.
showLocation на вход берет Location, определяет его провайдера методом getProvider и отображает координаты в соответствующем текстовом поле.
formatLocation на вход берет Location, читает из него данные и форматирует из них строку. Какие данные он берет: getLatitude – широта, getLongitude – долгота, getTime – время определения.
checkEnabled определяет включены или выключены провайдеры методом isProviderEnabled и отображает эту инфу на экране.
Метод onClickLocationSettings срабатывает по нажатию кнопки Location settings и открывает настройки, чтобы пользователь мог включить или выключить провайдер. Для этого используется Intent с action = ACTION_LOCATION_SOURCE_SETTINGS.
Осталось в манифесте прописать разрешение на определение координат — ACCESS_FINE_LOCATION, которое позволит нам использовать и Network и GPS. Также существует разрешение ACCESS_COARSE_LOCATION, но оно дает доступ только к Network-провайдеру.
С кодом все, давайте смотреть, что получилось. Все сохраняем и запускаем приложение.
У меня на планшете сейчас выключен GPS, выключен WiFi, вставлена симка и выключен мобильный интернет.
Запускаю приложение и вижу такую картину:
GPS выключен, Network включен. Но инета нет, поэтому Network мне ничего не дает. Надо включить либо мобильный инет, либо WiFi.
Я включаю WiFi. Проходит секунд 15-20 и инфа с Network пошла
Видим широту, долготу и время.
Напомню, что мы ставили минимальную скорость обновления – 10 сек. Но у меня провайдер Network выдает данные не чаще, чем раз в минуту.
Теперь давайте включим GPS. Для этого мы специально повесили кнопку Location settings, которую надо будет нажать пользователю, чтобы перейти в настройки. Жмем кнопку.
Видим, что GPS выключен, а Network включен. Наше приложение показывало все верно.
Разумеется, GPS можно включать и выключать через быстрые настройки системы (справа сверху). Но не все пользователи об этом знают. А тут мы их точно направим.
Включаем GPS и жмем Назад, чтобы вернуться в приложение.
GPS теперь показывает что он включен, ждем координаты. Для этого имеет смысл подойти к окну, больше вероятности, что поймаем сигнал.
В итоге сигнал пойман и получен результат.
У GPS через какое-то время включился статус 2 (AVAILABLE).
А у Network тишина со статусом. Не знаю, нормально это или нет.
Если с GPS сигналом все ок, то каждые 10 сек вы будете получать инфу о вашем местоположении. Если убрать планшет от окна, получим плохой сигнал: данные могут приходить реже и статус у меня иногда меняется на 1 (TEMPORARILY_UNAVAILABLE).
Прочее
Есть еще третий тип провайдера — PASSIVE_PROVIDER. Сам по себе этот провайдер никакие данные не вернет. Но повесив на него слушателя, вы сможете получать данные о местоположении, когда кто-то еще в системе пытается определить местоположение через обычные провайдеры. Система будет дублировать результаты и вам.
Метод getAllProviders вернет вам список всех доступных провайдеров. Метод getProviders(boolean enabledOnly) вернет либо все, либо только включенные.
Объект Location кроме координат, времени и провайдера имеет еще несколько атрибутов, которые могут прийти и пустыми:
getAccuracy – точность показания в метрах
getAltitude – высота над уровнем моря в метрах
getSpeed – скорость движения в м/с
getBearing – насколько я понял, это угол, на который текущая траектория движения отклоняется от траектории на север. Он же азимут.
Местоположение можно протестировать и через AVD эмулятор. Для этого надо в Eclipse открыть DDMS (Window > Open Perspective > DDMS) и выбрать вкладку Emulator Control. Внизу будет вкладка Manual, на которой есть поля для ввода координат и кнопка отправки.
На следующем уроке:
— создаем приложение с картой
— настраиваем карту и обрабатываем ее события
— программно меняем положение камеры
Присоединяйтесь к нам в Telegram:
— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.
— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование
— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня
— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме
Источник
Как узнать свои координаты все способы
Узнать координаты на карте необходимо в разных ситуациях. Например, если вы заблудились в лесу или в незнакомом городе. Оказать вам помощь будет гораздо легче, если известно местоположение. Расскажем, как узнать свои координаты.
Легче всего это сделать при помощи вашего смартфона на IOS или Android. При помощи GPS-модуля телефон без проблем определит вашу геопозицию. Помогут ему в этом специальные программы, о которых поговорим ниже. Перед тем как приступить к любому из способов не забудьте обязательно включить режим определения геопозиции иначе ваше местоположение может быть определено с большой погрешностью!
Как узнать координаты на телефоне андроид
Встроеный компас на Андройд
Если вы заранее не подготовились и не скачивали специальных программ, вам может помочь встроенное приложение «Компас» которое по умолчнию должно быть у каждого владельца смартфона на базе Андройд. При первом запуске программа попросить откалибровать компас осуществляя движения телефоном по траектории восьмерки после чего, если положить телефон в горизонтальное положение, на экране отобразиться сам компас, а внизу географические координаты.
К сожалению в компасе координаты невозможно скопировать в буфер обмена, и как следствие вам придется их запомнить. Также существенный минус компаса заключается в том, что в нем не отображается сама карта и вы видите только набор цифр, без возможности сопоставить координаты с вашим местоположением на местности.
Встроенные карты гугл Андройд
Вторым более полезным вариантом будет узнать координаты и ваше местоположение при помощи приложения гугл карты, которое также должно быть на вашем смартфоне по умолчанию.
После запуска приложения на экране отобразиться карта местности от гугл (при условии конечно, что есть доступ в сеть интернет) на карте отобразится ваше текущее местоположение в виде синей точки. Даже если интернета нет, синяя точка все равно покажется, просто вместо карты вы увидите серое пятно. Примечание, если точка отображается серым цветом, значит ваше местоположение определено не точно, включите модуль GPS (описано в начале статьи).
Далее нажмите на синюю точку пальцем, удеживайте некоторое время и отпустите, чтобы показался красный маркер. В нижней части экрана отобразится белая плашка с заголовком текущего места и кнопками «маршрут», «поделиться».
Нажмите на заголовок на плашке и на экране покажется подробная информация в том числе ваши координаты и pulse код.
Locus Map
Если вы ищите, как узнать координаты на Андроид, то эта программа-навигатор подходит лучше всего. При помощи Locus Map можно узнать свое местоположение, использовать путевые точки и маршруты. Что важно, карты отлично работают в оффлайн-режиме.
Скачать Locus Map можно в Google Play. У приложения есть бесплатная и платная версии. Вторая отличается отсутствием рекламного баннера сверху, а также некоторыми непервостепенными функциями.
Для первоначальной настройки программы необходимо подключение к интернету, поэтому лучше всего скачать ее еще дома. Затем подключаете геопозиционирование, разрешаете программе доступ к нему и получаете точку, где вы находитесь.
Карта показывает место, где вы находитесь. Чтобы понять, как узнать координаты точки, достаточно нажать на нее и удерживать. Появится адрес.
Затем нужно нажать на адрес, и программа покажет ваши координаты. Для копирования нажмите на них.
К сожалению, приложение не работает на iOS.
Карта Координаты
Еще один способ как узнать координаты не телефоне — приложение Карта Координаты (Map Coordinates) для Android. Скачать можно в Google Play. После установки не забудьте включить режим гео-позиционирования, а также разрешить программе доступ к нему. Карта Координаты мгновенно определяет ваше положение и показывает координаты сверху.
В параметрах можно изменить тип координат и единицы измерения.
Местоположение можно скопировать и отправить другу или МЧС.
Теперь вы знаете, как узнать GPS координаты на Андроид. Отдельно расскажем о приложениях для iOS (IPhone).
Как узнать координаты на iPhone: Компас
Чтобы понять, как узнать координаты на iOS, достаточно открыть встроенное приложение Компас. Для начала проверьте, включены ли у вас службы геолокации. При помощи строки поиска на iPhone найдите Компас. В нижней части экрана будут показаны ваши координаты. Их можно легко скопировать и отправить при помощи мессенджеров или СМС.
Как узнать координаты на Яндекс.Карты
Один из универсальных инструментов, подходящий под все операционные системы. Скачать приложение можно в Google Play или App Store.
Зайдите в приложение, предварительно включив режим гео-позиционирования. Разрешите картам доступ к нему. После этого приложение точно определяет местоположение. Узнать координаты на Яндекс просто: достаточно нажать на точку, и они появятся внизу. При помощи значка справа от координат их можно скопировать и переслать.
Как узнать координаты по Гугл Картам
Узнать координаты Гугл легче всего при помощи десктопной версии карт. Это может пригодиться, если вам нужно отправить какую-то точку из дома.
Для этого зайдите на сайт maps.google.ru. Он мгновенно определит ваше местоположение и покажет его внизу страницы.
Если вам нужны координаты какой-либо другой точки, то найдите ее на карте и нажмите: данные вновь появятся внизу.
Узнать координаты на GPS-навигаторе Garmin GPSmap
У многих опытных туристов есть еще один способ узнать долготу и широту: при помощи GPS-навигатора. Один из самых распространенных устройств — Garmin GPSmap. Это туристический портативный прибор, позволяющий определять местоположение как по спутникам системы GPS так и в системе ГЛОНАСС.
При включении прибор автоматически определяет координаты и все время записывает трек. Чтобы узнать текущие координаты достаточно нажать кнопку «MARK» которая находится на передней части навигатора. Кнопка предназначена для сохранения текущего местоположения в памяти устройства. При нажатии на кнопку на экране отображается форма с текущими координатами, которые вы впоследствии можете сообщить МЧС.
Как перевести координаты из одной системы в другую
Координаты могут быть десятичные вида DD.DDDDD (к примеру 50.67916 в.д., 40.841666 с.ш.) и географические (вида DD MM SS DD.DDDDD: 50° 40′ 45» в.д., 40 50′ 30» с.ш.). Чтобы перевести координаты из одной системы в другую, легче всего воспользоваться специальными онлайн-сервисами. Например, https://planetcalc.ru/1129/. Также используйте простую формулу: DDD = DD + MM/60 + SS/3600.
Теперь вы знаете, как определить местоположение на местности при помощи телефона или GPS-навигатора. Удачного путешествия!
Источник