Как по геолокации найти человека: ТОП-6 приложений для Андроид и Айфона + сервисы

Утилиты-навигаторы, содержащие в себе карты различных городов, являются одними из самых популярных и востребованных в магазинах приложений. 

Сегодня мы рассмотрим пять приложений для поиска GPS-координат,  расскажем об их работе, преимуществах и платных функциях.

Первое из рассматриваемых нами приложений – GPS Coordinates. Один из самых простых и незатейливых навигаторов с интересными возможностями. 

image

Разработчики позволяют юзерам, скачавшим данную утилиту, загружать, делиться и сохранять координаты для того, чтобы использовать их в дальнейшем. Также предусмотрена стандартная функция нахождения координат пользователя по введённому адресу и изменения вида карты. Возможно отображение обычной карты-схемы и вид со спутника. 

Базовые функции функции приложения:

  • конвертация любого адреса в gps-координаты и наоборот (широта и долгота);
  • быстрая отправка координат в социальные сети или на email;
  • локальное сохранение и загрузка gps-координат на мобильное устройство.

В целом, GPS Coordinates представляет собой обычное приложения без наворотов. Оно будет полезно тем, кому нужны самые простые карты, чтобы не потеряться в незнакомом городе.

Утилита с картами, функционирующая на основе известной навигационной системы “Глонасс”. Имеет ряд полезных функций, о которых мы расскажем далее. 

image

Во-первых, что крайне положительно отличает его на фоне остальных GPS-навигаторов  – возможность сделать фотографию, привязав её к координатам на карте. Таким образом интуитивно и удобно отмечать важные координаты на карте. Можно сравнить эту функцию с приложением Инстаграм, где фото также привязывается к определенной локации. 

Ещё один безусловный плюс – возможность загрузки офлайн-карт и вычисление координат без подключения к интернету. Наравне с предыдущей функцией, “GPS/Glonass координаты” становится одним из наиболее предпочитаемых приложений в походах или длительных путешествиях вдали от цивилизации.

Однако не всё так радужно. Пользователи Play Market отмечают навязчивую интернет-рекламу при работе с приложением. Данная реклама очень долго грузится при слабой сети и не даёт узнать своё местоположение до её просмотра. От рекламы можно избавиться путём покупки полной версии приложения.

Ещё один простой и незатейливый навигатор. В отличии от GPS Coordinates, имеет более широкий функционал:

  • Определение координат указанной точки на карте в виде Latitude/Longitude
  • Копирование, публикация, печать и сохранение координат в социальных сетях
  • Преобразование координат в адрес и наоборот

На главном экране приложения имеются три раздела: “Мои координаты”, “Сохранённые локации” и “Настройки”. Первая кнопка отвечает за то, чтобы найти и показать на экране ваше текущее местоположение через спутник. Координаты, которыми вы будете пользоваться в дальнейшем, можно сохранить и перейти к их списку с помощью второй кнопки. Настройки позволят указать конкретную страну, город, адрес или почтовый индекс. 

Приложение My Location бесплатно, на экране отображается реклама. 

Главное отличие данного навигатора от предыдущих – наличие компаса. Это не является чем-то необычным, особенно учитывая тот факт, что на iPhone, например, компас является встроенным приложением. Однако использовать компас в приложении-навигаторе несомненно удобнее. В остальном, функционал приложения GPS & Maps стандартен. 

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

  • узнать собственное месторасположение, 
  • свериться с компасом, 
  • открыть карту местности
  • докупить дополнительный функционал во внутреннем магазине. 

За дополнительную плату можно отмечать своё местоположение маркерами, а компас будет отображаться поверх карты в виде виджета. Также докупаются и другие виджеты: показатели скорости, координат и другое.

Данное приложение, на наш взгляд, хоть и является довольно удобным, всё-таки проигрывает другим навигаторам, в том числе, упомянутым ранее, поскольку там большая часть функций работала точно так же, но не требовала доплаты. 

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

Скачать GPS & Maps на iOS

Приложение “GPS Formatter” бесплатно и обладает основным функционалом простейшего навигатора, как и предыдущие.  От рекламы можно избавиться приобретя подписку ($3 в месяц). 

Отличительной фишкой навигатора является возможность выбора из огромного количества форматов координат – например Georef или военная координатная сетка системы МГРС. 

Также приложение может конвертировать входящие данные в координаты и отмечать их на карте или выводить уже имеющиеся данные через Airdrop в формате .txt для дальнейшей работы с ними на персональном компьютере. 

Ещё один бонус для владельцев техники Apple – поддержка умных часов Apple Watch с выводом текущих координат пользователя на дисплей. 

Встроенный в приложение калькулятор помогает вычислять значения геомагнитного поля: декларацию, напряжённость и другие. 

Единственным минусом можно назвать громоздкий пользовательский интерфейс.

Мы считаем, что данное приложение является одним из лучших в категории GPS-навигаторов за счёт своего действительно широкого и интересного набора функций, бесплатности и невысокой цены за избавление от рекламы.

Скачать GPS Formatter на iOS

Пожалуйста, оцените статью: 

Разработчик: Hot Android Apps

Размер файла: Зависит от устройства

СКАЧАТЬ APK

GPS/Glonass координаты — удобная программа для быстрого и точного определения своего местоположения на местности.

Основные возможности программы

  • Определение координат своего местонахождения
  • Координаты точки (широта и долгота) отображаются в десятичной форме, а также в градусах, минутах и секундах
  • Возможность отправки своих координат по Email, SMS, социальным сетям
  • Возможность сфотографировать свое местонахождение и поделиться им
  • Отображение силы сигнала в данной точке
  • Для работы программы нет необходимости выходить в глобальную сеть

Реклама и платный контент

  • Присутствует реклама
  • Информации о платном контенте нет

Map Coordinates (Карта Координаты) – это простой и удобный способ получить точные координаты на местности. Выбирайте любой из четырех вариантов карт, включая снимки со спутника и карту общественного транспорта, для каждой карты можно задать определенный масштаб. Указывайте в настройках тип координат, единицы измерения и некоторые другие параметры. Приложение умеет определять ваше точное местоположение, искать различные места на карте, сохранять в буфер обмена заданные координаты и делится данными через социальные сети.

Особенности:

  • Различные карты
  • Различные типы координат

Скачать приложение которое поможет узнать свои точные координаты – Map Coordinates на Андроид вы можете по ссылке ниже.

Разработчик: Soft Stack DevПлатформа: Android 4.4 и вашеЯзык интерфейса: Русский (RUS)Состояние: Full (Pro – Полная версия) [Mod]Root: Не нужен

СКАЧАТЬ:
Map Coordinates (Карта Координаты) Pro – v4.9.6 (Mod) (ARM) [Размер файла – 8,08 Mb]
[google play]
Map Coordinates (Карта Координаты) Pro – v4.9.6 (Mod) (ARM64) [Размер файла – 8,08 Mb]
  • СовместимостьОсобенность PLNET заключается в его универсальной совместимости со всеми современными устройствами, функционирующими на различных операционных системах: iOS, Android, Windows Mobile, Symbian и Linux. Теперь Вам не потребуется искать новый метод получения геоданных для каждого конкретного телефона. Локатор мобильных устройств одинаково успешно отображает данные геолокации как новейших Iphone смартфонов, так и далеко не новых кнопочных телефонов родом из 90-х. Локатор мобильных устройств PLNET одинаково эффективно взаимодействует с мобильными операторами более 100 стран мира.
  • Отсутствие согласия владельца устройстваСегодня практически каждый производитель электронных устройств предлагает встроенную функцию определения геолокации. У Apple она называется Найти Iphone . У Android данная функция носит название Удаленное управление Помимо этого сотовые операторы предлагают аналогичные сервисы МТС Локатор , Радар Мегафон , Билайн.Локатор , Маячок от Киевстар и так другие. Но у всех этих сервисов есть основной минус – Вы не сможете активировать их без доступа к устройству. PLNET в свою очередь не требует уведомления и согласия со стороны владельца устройства.
  • Правовой аспектМы не интересуемся с какой целью пользователи оформляют подписку PLNET и в свою очередь гарантируем полную неприкосновенность конфиденциальной информации. Все полученные данные проходят процесс двухфакторного шифрования и не могут быть переданы третьим лицам, не зависимо от источника запроса.

В этом уроке:

– получаем данные о местоположении

Android устройства могут предоставить нам данные по нашему текущему местоположению. Это, конечно, очень удобно и вовсю используется для, например, пользования картой, получения актуальной для вашей местности информации (прогноз погоды), всевозможных чекинов и пр.

Реализация этого всего вполне проста. Мы вешаем слушателя на провайдера и получаем данные. На данный момент есть два провайдера: GPS и Network.

GPS – тут все понятно, это данные с GPS-спутников.

Network – это координаты, которые можно получить через сотовую связь или WiFi. Для этого провайдера нужен инет.

Напишем простое приложение, которое будет запрашивать и отображать координаты.

Создадим проект:

Project name: P1381_LocationBuild Target: Android 2.3.3 Application name: LocationPackage name: ru.startandroid.develop.p1381locationCreate Activity: MainActivity

В strings.xml добавим строки:

GPSNetworkLocation settings

Экран main.xml:

Несколько TextView, в которые мы будем выводить данные, и кнопка для открытия настроек местоположения.

MainActivity.java:

package ru.startandroid.develop.p1381location;    import java.util.Date;    import android.app.Activity;  import android.content.Intent;  import android.location.Location;  import android.location.LocationListener;  import android.location.LocationManager;  import android.os.Bundle;  import android.view.View;  import android.widget.TextView;    public class MainActivity extends Activity {      TextView tvEnabledGPS;    TextView tvStatusGPS;    TextView tvLocationGPS;    TextView tvEnabledNet;    TextView tvStatusNet;    TextView tvLocationNet;      private LocationManager locationManager;    StringBuilder sbGPS = new StringBuilder();    StringBuilder sbNet = new StringBuilder();      @Override    protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.main);      tvEnabledGPS = (TextView) findViewById(R.id.tvEnabledGPS);      tvStatusGPS = (TextView) findViewById(R.id.tvStatusGPS);      tvLocationGPS = (TextView) findViewById(R.id.tvLocationGPS);      tvEnabledNet = (TextView) findViewById(R.id.tvEnabledNet);      tvStatusNet = (TextView) findViewById(R.id.tvStatusNet);      tvLocationNet = (TextView) findViewById(R.id.tvLocationNet);        locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);    }      @Override    protected void onResume() {      super.onResume();      locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,          1000 * 10, 10, locationListener);      locationManager.requestLocationUpdates(          LocationManager.NETWORK_PROVIDER, 1000 * 10, 10,          locationListener);      checkEnabled();    }      @Override    protected void onPause() {      super.onPause();      locationManager.removeUpdates(locationListener);    }      private LocationListener locationListener = new LocationListener() {        @Override      public void onLocationChanged(Location location) {        showLocation(location);      }        @Override      public void onProviderDisabled(String provider) {        checkEnabled();      }        @Override      public void onProviderEnabled(String provider) {        checkEnabled();        showLocation(locationManager.getLastKnownLocation(provider));      }        @Override      public void onStatusChanged(String provider, int status, Bundle extras) {        if (provider.equals(LocationManager.GPS_PROVIDER)) {          tvStatusGPS.setText("Status: " + String.valueOf(status));        } else if (provider.equals(LocationManager.NETWORK_PROVIDER)) {          tvStatusNet.setText("Status: " + String.valueOf(status));        }      }    };      private void showLocation(Location location) {      if (location == null)        return;      if (location.getProvider().equals(LocationManager.GPS_PROVIDER)) {        tvLocationGPS.setText(formatLocation(location));      } else if (location.getProvider().equals(          LocationManager.NETWORK_PROVIDER)) {        tvLocationNet.setText(formatLocation(location));      }    }      private String formatLocation(Location location) {      if (location == null)        return "";      return String.format(          "Coordinates: lat = %1$.4f, lon = %2$.4f, time = %3$tF %3$tT",          location.getLatitude(), location.getLongitude(), new Date(              location.getTime()));    }      private void checkEnabled() {      tvEnabledGPS.setText("Enabled: "          + locationManager              .isProviderEnabled(LocationManager.GPS_PROVIDER));      tvEnabledNet.setText("Enabled: "          + locationManager              .isProviderEnabled(LocationManager.NETWORK_PROVIDER));    }      public void onClickLocationSettings(View view) {      startActivity(new Intent(          android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));    };    }

В 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, вставлена симка и выключен мобильный интернет.

Запускаю приложение и вижу такую картину:

image

GPS выключен, Network включен. Но инета нет, поэтому Network мне ничего не дает. Надо включить либо мобильный инет, либо WiFi.

Я включаю WiFi. Проходит секунд 15-20 и инфа с Network пошла

image

Видим широту, долготу и время.

Напомню, что мы ставили минимальную скорость обновления – 10 сек. Но у меня провайдер Network выдает данные не чаще, чем раз в минуту.

Теперь давайте включим GPS. Для этого мы специально повесили кнопку Location settings, которую надо будет нажать пользователю, чтобы перейти в настройки. Жмем кнопку.

image

Видим, что GPS выключен, а Network включен. Наше приложение показывало все верно.

Разумеется, GPS можно включать и выключать через быстрые настройки системы (справа сверху). Но не все пользователи об этом знают. А тут мы их точно направим.

Включаем GPS и жмем Назад, чтобы вернуться в приложение.

image

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

В итоге сигнал пойман и получен результат.

image

У GPS через какое-то время включился статус 2 (AVAILABLE).

image

А у 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 для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме 

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Citilink-kabinet.ru
Добавить комментарий