В прошлый раз, когда мы рассказывали о приложении МегаФон Навигация и принципах его работы, мы упомянули еще несколько услуг, главной составляющей которых является определение координат и их интерпретация (Location-based services).
В зависимости от поставленных перед сервисом задач и требований по точности, мы применяем разные технологии определения координат. Сегодня мы расскажем, какие технологические площадки есть у нас в распоряжении, и как мы их используем.
Теория
Включив ваш мобильный телефон или любое другое устройство, работающее в GSM-сети (Mobile station), вы запускаете огромный технологический процесс.
Первое, что делает ваше мобильное устройство (MS), это осуществляет поиск ближайших базовых станций (Base station, BS). Если быть точнее, то прослушивает эфир в поисках доступных сот. Телефон может прослушивать до 16 широковещательных каналов. Из их числа определяет 6, наиболее удовлетворяющих с точки зрения затрат энергии и качества сигнала. Но в один момент времени работать будет только с одной. У каждой из сот есть свой уникальный номер (CellID).
При этом все базовые станции (BS) объединены в группы. Как правило, принадлежность к группе определяется их местоположением (Location area), и чтобы базовые станции можно было идентифицировать, каждой группе присваивается уникальный номер — Location area code (LAC).
Вместе параметры LAC и CellID работают как уникальные идентификаторы базовой станции, на которой зарегистрировано и работает мобильное устройство. Именно используя эти параметры, Центр коммутации выбирает верное направление для отправки вызова в вашу сторону, иначе приходилось бы искать вас среди тысяч базовых станций.
Кроме того, определяется сектор базовой станции (Cell Sector) и фиксируется время, за которое сигнал от мобильного устройства достигает базовой станции – это параметр Timing Advance. Благодаря этому известна не только принадлежность к базовой станции, но и удаленность от нее.
Определение положения абонента в сотовой сети.
Данные о местоположении мобильного телефона обновляются с определенной периодичностью или в случае, если он перемещается (конечно же, вместе с вами), то при каждом переключении между базовыми станциями.
Как направить звонок нужному абоненту?
Взаимодействие систем для определения позиции мобильного устройства.
Номер телефона, который хранится в огромной базе номеров сотового оператора. Домашний регистр местоположения (Home location registry, HLR) содержит информацию обо всех абонентах, приписанных к нему. Найдя абонента в одной из HLR, мы перенаправляем вызов на связанный с ним Центр коммутации (Mobile switching centre, MSC), тот в свою очередь запрашивает информацию у Гостевого регистра местоположения (VLR), который содержит данные о последнем зарегистрированном CallID, LAC абонента. После чего контроллер базовых станций (Base station controller, BSC) связывается с базовыми станциями в рамках переданного LAC, и звонок направляется на нужную соту (CellID).
Практика
Благодаря тому, что работа сотовой связи неотрывно связана с определением местоположения, стали развиваться и геолокационные сервисы на основе GSM/UMTS-сети.
Основными критериями работы геолокационных сервисов являются не только точность определения координат мобильного терминала, но и частота их обновления по запросу, возможность получить не только актуальные координаты в текущий момент, но и хранить исторические данные и строить маршрут передвижения телефона, а значит и абонента.
Поскольку работа многих абонентских услуг связана с получением координат конкретного абонента, показать координаты, мы можем только в случае, если абонент дал на это разрешение: подтвердил эту возможность в рамках запроса от сервиса. Другого способа получить координаты абонента нет.
Для услуг Радар и Маячок, где местоположение отслеживается только по запросу от абонента, мы используем следующую логику работы.
При каждом запросе от сервиса система обращается к цепочке оборудования и получает параметр CellID и LAC. Мы в свою очередь знаем координаты каждой базовой станции и после дополнительной математической обработки показываем пользователю зону, в которой может находиться абонент. Чем больше плотность размещения базовых станций, тем точнее определение координат. Соответственно в черте города погрешность ниже, чем за городом.
У нас есть возможность получить не только данные CellID базовой станции, на которую подключен абонент, но и данные «соседей» (соседние базовые станции), мы можем повысить точность определения используя триангуляцию – теперь зона, в которой находится абонент уже ограничивается не дальностью действия базовой станции, а симплексом между несколькими базовыми станциями (зачастую это треугольник, вершины которого заданы координатами базовых станций). Данный метод определения так же работает по запросу пользователя и, к примеру, используется в услуге Навигатор.
Создавая сервис Контроль кадров мы поставили перед ним более сложные задачи. Помимо определения координат абонента, мы можем дать пользователю данные о входе и выходе абонента из определенной географической зоны, поиск сотрудников, которые находятся наиболее близко к заданной точке, а главное сбор статистики всех маршрутов. Дополнительно сервис позволяет настраивать время для мониторинга (чтобы ограничить его только рабочим временем сотрудника), а также позволяет отправлять сообщения сотрудникам непосредственно из сервиса.
Пример использования услуги «Контроль кадров»
Чтобы реализовать подобный набор функций, нужно нечто большее, чем просто запрашивать координаты местоположения абонента. Мы реализовали возможность собирать данные с базовых станций непосредственно после их обновления и агрегацию их в историю. Это позволило устранить постоянный опрос систем и предоставить для всех сервисов возможность получения информации о координатах абонента в масштабе реального времени. Платформа накапливает все значения, полученные от базовых станций, и уже с ней общаются геолокационные сервисы:
- С заданной частой проверяют данные с базовых станций, чтобы увидеть, не зашел ли абонент в зону, которая выделена для мониторинга;
- Уточняют данные геопозиции по запросу. Таким образом можно получить последнее местоположение абонента;
- Строят маршрут передвижения абонентов на основе исторических данных;
- Прогнозируют скопления и пути миграции абонентов на основе сохраненной истории.
На базе этой площадки, работает масса сервисов, например, Экстренные службы. При звонке по номеру 112, помимо общения с оператором и озвучивания ему возникшей сложности, также передается и географическая позиция звонящего. В этом случае оперативные службы могут действовать более точно и найти нуждающегося в помощи даже если связь потом была потеряна.
Возможно применение и обезличенных данных (без использования данных абонента), когда для анализа используется только географические координаты. Мы называем это Геопространственный анализ – агрегация информации о миграции и перемещении, скоплении абонентов. Получив подобную информацию, можно найти наиболее подходящее место для развития сети магазинов, офисов обслуживания или установки банкоматов. Но это не единственной применение, благодаря этим данным можно прогнозировать новые транспортные развязки, остановки общественного транспорта, социальные объекты: парки, прогулочные зоны и прочее.
Пример анализа скопления мобильных устройств определенной категории в регионах.
В сервисе Знакомства, который встроен в приложение МегаФон-Навигация, мы также применяем только географическую позицию. Вы можете найти ближайших к вам абонентов, но единственное, что вы сможете узнать о них, это имена (nickname), которые пользователи задали самостоятельно.
Заключение
В целом для каждой задачи можно найти свой инструмент, который позволяет ее решить наилучшим образом. Возможно, у вас также появятся идеи для геолокационного сервиса, который будут использовать абоненты «МегаФона» или сотрудники вашей компании. Мы будем рады всем предложениям о сотрудничестве или запросам на доступ к API сервисам.
Все описанные сервисы разработаны и развиваются в компании «МегаЛабс».
Автор: dude1phoenix
Огромное спасибо! Были проблемы с девушкой помогли советом в сложной ситуации! Все удалось благополучно решить. Обратился по вот этому номеру телефона +79298322016 спасибо им еще раз! Всем советую.
Здравствуйте,обращался как-то к этому человеку с просьбой помочь.Сделал всё быстро и качественно.Если заинтересует,советую позвноить по номеру 9897 717 57 0