Как стать автором
Обновить

Миссия невыполнима: геолокация на Android без сжирания батарейки

Время на прочтение10 мин
Количество просмотров79K
Всего голосов 44: ↑41 и ↓3+38
Комментарии12

Комментарии 12

предсказать, где окажется через 30 минут вошедший в метро
Не скажу за все метро (да вообще ни за какое не скажу), но во многих местах знаю уже есть покрытие сотовой связью. Не говоря уж о точках доступа Wi-Fi. Интересно возможно ли хоть какое-то позиционирование по таким данным? Там конечно не антенна+БС, а некий антенный кабель, но тем интересней!
За полчаса в Москве можно проехать примерно 10-12 станций, то есть оказаться практически где угодно. Значит повышаем частоту запросов. С другой стороны быстро из метро не выберешься. Если ты сейчас в поезде, то в ближайшие пару минут ты на поверхности не окажешься. Если ты только спустился, то у тебя есть минимум минут 5. Плюс, если ближайший радиус в другом конце города, то быстро до него на метро не доберешься.
Я бы хранил примерное время от станции до станции и считал бы время t, за которое можно добраться до ближайшего радиуса. И делал бы явный запрос раз в max(t/2, 5) минут.
Я бы хранил примерное время от станции до станции и считал бы время t, за которое можно добраться до ближайшего радиуса. И делал бы явный запрос раз в max(t/2, 5) минут.

Огрублено примерно так всё и работает, что-то принципиально новое сложно придумать. Но max(t/2, 5) — это слишком часто, батарея начнет ощутимо просаживаться. В базовом варианте нам удалось добиться всего нескольких десятков проверок координат в день для среднестатистического пользователя.
На самом деле станции и пересадки можно отлично детектировать по изменению магнитного поля, для этого даже дополнительных прав не нужно.
… и по этому самому «антенному кабелю» меня вечно на перегоне Проспект Мира — Новослободская телепортирует в Питер. А Новослободская-Белорусская вечно говорит мне, что я проезжаю Нагатинский метромост. А где-то в районе Нагатинской, емнип, ещё недавно была смешная БС, которая считала, что она в Карелии… Ну, т.е. базы геолокации считали, что она там. Что у гугла, что у here maps.
Позиционирование по бс в метро — оно такое.
А слабо распознавать названия станций, которые объявляют в поезде? :)
Это можно. А еще есть схожая технология по локации внутри ТЦ по записи на микрофон неслышимых человеческому уху звуков из динамиков. Насколько помню где-то в Азии такое внедряли.
Интересно возможно ли хоть какое-то позиционирование по таким данным?

Да, возможно. Собственно тот же Яндекс.Метро нормально определяет текущую станцию. В открытых базах можно найти даже конкретные идентификаторы точек, установленных в метро.
А у iOS по части навигации как, всё печально?
Да, ограничений больше — но Андроид тоже движется в направлении ужесточения правил игры. В наших планах есть аналогичные тесты и на комплектах iPhone.
А где можно найти код реализации i402? Гугл никакой информации не выдает
Код реализации закрыт, но если есть задача разработки аналогичного решения — пишите в лс, в принципе можно объединить усилия.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории