Работаем с GPS в Android на Delphi

Библиотека FireMonkey позволяет получать данные с GPS приёмника устройства на базе Android, если оно им оборудовано.

Функционал по работе с GPS реализован в виде компонента TLocationSensor, который находится в группе Sensors на панели компонентов.

Управление TLocationSensor осуществляется с помощью свойства Active (имеет тип Boolean). При значении true, получение данных от GPS приёмника включено. При значении false выключено.

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

Для обработки данных GPS с помощь TLocationSensor служит событие OnLocationChanged.

В этом событии возможен доступ, как к предыдущим (параметр OldLocation), так и к текущим географическим координатам (параметр NewLocation). В примере выше приведен один из возможных вариантов отображения текущих координат на форме приложения.

К сожалению, географические координаты в FireMonkey имеют тип TLocationDegrees, который является псевдонимом  Double. Поэтому широта и долгота при получении будут представлены в виде обычных десятичных чисел. Однако их не сложно перевести в обычное представление «градусы-минуты-секунды» пересчитав дробную часть.

Также стоит отметить, что для доступа к GPS приёмнику в Android требуется специальное разрешение «Access fine location» (на скриншоте ниже выделено красным).

Права доступа к GPS

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *