Как посмотреть маршрут android

Как посмотреть историю перемещений пользователя Android-устройства

Давно этим пользуюсь, удобно смотреть где родные. Раньше на iOS это работало через программу latitude, потом ее закрыли и сейчас это работает через google+, но очень криво. Например у меня за декабрь история пустая.

Сообщение отправлено из мобильного приложения iGuides

Айяйяй-у меня 3 гуглодевайса в семье и два — эппловских. Во всех андроиддевайсах тут пусто. Какой ужас! И верно-при первом запуске нового девайса он спросит, отслеживать ли местоположение? Не знаю ни одного человека, кто ответил бы «да» 🙂

Сообщение отправлено из мобильного приложения iGuides

Так и представляю, как вьі спрашиваете при встрече у своих знакомьіх:
— а тьі давал согласие на отслежьівание?
А те в свою очередь отвечают:
— Нет конечно. А тьі?

Сообщение отправлено из мобильного приложения iGuides

Источник

Маршруты на картах Google в Android-приложении

Недавно у меня возникла необходимость отображать маршрут между двумя точками на карте Google в моем приложении. На Хабре уже были публикации на эту тему. Например, «Маршруты на картах Google в вашем Android-приложении». Однако этим материалам уже довольного много времени и они не используют новых возможностей. Хочу показать еще один способ рисования маршрутов, может быть, кому-то он окажется полезен.

Я опущу процесс интеграции Google карт в приложение, интересующиеся могут найти всю информацию в подробном руководстве от Google. Весь процесс отображения маршрутов состоит из нескольких этапов:

  • Получение информации о маршруте;
  • Обработка полученного ответа;
  • Рисование маршрута на карте.

Рассмотрим эти этапы.

Получение маршрута

Для получения информации о маршруте мы должны выполнить запрос к службе маршрутов Google. Полное описание запросов и возвращаемых запросов доступны на сайте Google. Я лишь отмечу, что для получения маршрута мы должны выполнить запрос вида:

В качестве output мы можем выбрать XML, либо (в нашем случае) JSON. К числу обязательных параметров относятся origin и destination — их можно указать в виде текстового представления адреса, либо в виде значений широты и долготы, разделенных запятой. Третий обязательный параметр sensor указывает на то, исходит ли запрос от устройства с датчиком положения, либо нет — в нашем случае всегда будет равен true.

После того, как мы разобрались с форматом запроса, необходимо выбрать способ, которым мы будем выполнять наш запрос к службе маршрутов Google и получать ответ. Я использую библиотеку Retrofit, которая позволят выполнять формировать запросы к REST-сервисам буквально в пару строк.

Для использования Retrofit необходимо подключить библиотеку к вашему проекту. С использованием gradle это делается добавлением одной строки зависимости в ваш gradle-файл:

Читайте также:  Телефоны андроид от велкома

Далее нам необходимо описать API службы маршрутов Google. Для этого мы создаем новый Java-интерфейс, где мы создаем некоторое количество методов и при помощи аннотаций Retrofit сопоставляем их с различными методами на сервере. Так как мы будем получать только информацию, нам нужно описать только один метод для GET-запроса:

Аннотация GET в качестве аргумента принимает директорию на сервере, к которой должен выполняться запрос, а уже в самом методе аннотируем каждый его параметр аннотацией Query. Как аргумент для каждой аннотации имя параметра, который мы включаем в запрос. В данном случае для параметров origin и destination я устанавливаю свои значения для флага encodeValue, при помощи которого я сообщаю Retrofit, чтобы он не кодировал запятую, которая разделяет значения широты и долготы в моем запросе. Также я добавляю еще один параметр language для того, что бы ответ от сервера приходил на русском языке. Наш REST-метод должен возвращать некий объект, назовем его RouteResponse. Его мы опишем позже, а пока просто создадим еще один класс с именем RouteResponse.

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

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

Обработка полученного ответа

В результате выполнения запроса мы получим объект RouteResponse. На самом деле, поскольку от сервера мы запросили JSON, то и ответ от сервера придет в JSON-формате. Retrofit, получив ответ от сервера, самостоятельно запускает парсинг JSON с использованием парсера от Google GSON, а уж тот парсит JSON в объект RouteResponse. При желании можно выбрать другой парсер — Jackson, либо JSON-парсер от Instagram, но я предпочитаю пользоваться GSON. GSON идет в комплекте с Retrofit, поэтому никаких дополнительных зависимостей для его использования нам в проект включать не надо.

Для того, чтобы доставать какие-то данные из JSON-ответа, нам нужно создать класс, описывающий эти данные. Мы уже создали класс RouteResponse, осталось наполнить его каким-то содержимым. Общая структура ответа от сервера службы маршрутов Google такова:

Как видим, в ответе нам приходит массив маршрутов Routes, который содержит массив отрезков Legs, состоящий из шагов Steps, составляющих отрезок маршрута, и информации об отрезке. В ранних примерах маршруты строились на основе информации о каждом шаге отрезка, однако уже в объекте Route содержится объект Overview_polyline — это объект с массивом закодированных элементов points, которые представляют приблизительный (сглаженный) путь результирующего маршрута. В большинстве случаев этого сглаженного маршрута будет достаточно. Поэтому для рисования я буду использовать именно его.

На основе этой информации мы пишем наш класс модели для GSON:

Читайте также:  How to android system update

Выполнив запрос и получив объект RouteResponse мы можем получить из него строку points. В своем исходном состоянии она нам мало что дает. Для того, чтобы добыть из нее какую-то информацию, нам нужно расшифровать ее. Здесь нам придет на помощь класс PolyUtil из библиотеки Google Maps Android API utility library. Чтобы им воспользоваться, нужно включить следующую зависимость в ваш проект:

PolyUtil содержит метод decode(), принимающий строку Points и возвращающий набор объектов LatLng, узлов нашего маршрута. Этого нам достаточно для того, чтобы нарисовать наш маршрут на карте.

Рисование маршрута на карте

В старых примерах для рисования маршрута использовался Overlay, мы же обойдемся классом Polyline — в этом случае нам не нужно создавать дополнительный класс, наследуемый от Overlay и объем кода, который нам необходимо написать, радикально сокращается. Polyline — это список точек на карте и линия, их соединяющая. Polyline затем можно добавить на карту:

Для начала мы создаем экземпляр класса PolylineOptions и устанавливаем толщину и цвет линии. Затем получаем экземпляр LatLngBuilder для построения ограничивающего прямоугольника, который будет использоваться для того, чтобы масштабировать карту. Дальше мы проходим по списку объектов LatLng, полученному в результате расшифровки ответа от API маршрутов Google и добавляем каждую точку на линию в и LatLngBuilder. Для первого и последнего объекта в списке, которые представляют собой координаты начальной и конечной точки соответственно, мы создаем маркеры и добавляем их на карту. После завершения перебора элементов списка мы добавляем построенную линию на карту вызовом метода addPolyline().

Затем нам нужно масштабировать карту таким образом, чтобы отобразить весь маршрут. Перемещение по карте выполняется при помощи метода moveCamera() класса Camera, который принимает на вход настройки камеры в объекте UpdateCamera. Объект CameraUpdate мы создаем вызовом метода newLatLngBoudns у класса UpdateCameraFactory. Мы пеередаем ему созданный нами объект LatLngBounds, который содержит все точки нашего маршрута и передаем ему ширину нашего экрана и добавляем отступ от краев. После этого мы вызываем метод для передвижения камеры. И всё, маршрут нарисован.

Источник

Как посмотреть историю местоположений на Android

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

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

Как посмотреть историю местоположений на Android

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

Метод 1. Использование приложения Google

Шаг 1. Откройте Google на вашем телефоне Android.

Читайте также:  Что такое com android carrierconfig

Шаг 2: Нажмите на Кнопка «Дополнительно» (кнопка с 3 точками) внизу справа.

Шаг 3: нажмите Кнопка «Стрелка вниз рядом с именем вашей учетной записи.

Шаг 4: Нажмите на Управляйте своим аккаунтом Google.

Вы попадете на новую страницу, на которой показано все, что нужно увидеть в вашей учетной записи Google. По умолчанию вы будете на вкладке «Главная».

Шаг 5. Среди вкладок вверху выберите Данные и персонализация.

Шаг 6: Под Контроль активности, нажать на История местоположений.

Шаг 7: Ударьте Управление деятельностью.

Вы попадете в приложение Google Maps. На новой странице загрузится интерфейс, в котором вы сможете просматривать историю своего местоположения, сортируя по дню, месту, городам и миру.

Шаг 8: Находить конкретная деятельность:

Метод 2: с помощью приложения Google Maps

Шаг 1. Откройте Карты Гугл приложение на вашем устройстве Android.

Шаг 2: коснитесь гамбургер-меню вверху слева.

Шаг 3: коснитесь Ваши места.

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

Шаг 4. Среди вкладок вверху выберите Посетил вкладка между бронированиями и картами.

Вам будет показан список посещенных вами мест, начиная с самых недавних и заканчивая более ранними посещенными местами.

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

Шаг 1. Откройте Карты Гугл приложение на вашем устройстве Android.

Шаг 2: коснитесь гамбургер-меню вверху слева.

Шаг 3: Нажмите на Ваш график.

Шаг 4: Находить конкретная деятельность:

  • День
    • Нажмите на стрелку рядом с «Сегодня» в верхней части экрана.
    • Выберите дату из месяца или проводя пальцем влево / вправо, чтобы выбрать конкретный месяц.
    • Действия за день теперь будут отображаться в нижней половине экрана.
  • Места
    • Нажмите на Места вкладка вверху.
    • Вам будет показан список мест, которые вы могли бы посетить в вас и вокруг вас.
  • Города
    • Нажмите на Города таб.
    • Список городов, которые вы посещали в прошлом, будет показан ниже.
    • Нажмите на конкретный город, чтобы увидеть, где вы находитесь.
  • Мир
    • Нажмите на Мир таб.
    • Вам будет показан список стран для просмотра истории вашего местоположения, и вы сможете продолжить просмотр дополнительных параметров, таких как города, места и время.

Метод 3: с помощью приложения для браузера

Шаг 1: Открыть предпочитаемый вами веб-браузер (например, Chrome).

Шаг 2. Посетите эту страницу — https://myactivity.google.com. И войдите со своим Google ID.

Шаг 3. В левом переднем меню выберите Контроль активности.

Шаг 4. Перейдите в раздел с названием История местоположений и нажмите на Управление деятельностью.

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

Источник

Оцените статью