Сейчас всё больше мобильных приложений становятся геозависимыми. Одни просто не имеют смысла без знаний о местоположении пользователя, другие становятся с ним удобнее. Это так называемые Location Based Services (LBS): навигаторы, форскверы, инстаграмы с геотегами фотографий и даже приложения-напоминалки, которые срабатывают около конкретного места, например, рядом с офисом или магазином.
Для сервисов и приложений Яндекса мы создали собственную реализацию метода определения местоположения без GPS - Яндекс.Локатор . Он экономит время пользователя и делает наши приложения чуточку умнее. В Навигаторе и Картах она избавляет от ввода начальной точки маршрута, даже если вы на крытой парковке. А при выборе фильма в Киноафише или товара в мобильном Маркете помогает сразу показать, где их найти именно в вашем районе города. Ну и, разумеется, при поиске кафе и банкоматов - позволяет показывать вам сразу ближайшие, даже когда вы в метро.
Технологию мы давно открыли в виде бесплатного API. Сегодня хотим рассказать, как она устроена.
Во-первых, поиск спутников иногда занимает несколько минут, а бывают ситуации, в которых скорость определения важна даже с потерей точности. Например, когда нужно построить предварительный маршрут в навигаторе или зачекиниться . Во-вторых, спутники обычно не «видны» в помещениях или под землёй. В-третьих, GPS-модули есть не в каждом мобильном телефоне или планшете, и их почти нет в ноутбуках. То есть для LBS нужны альтернативы.
И альтернативы, конечно, есть - определять местоположение можно по ближайшим GSM-вышкам, сетям Wi-Fi и даже по IP-адресу. Точность определения у каждого из этих способов гораздо хуже, чем у GPS. Но если их скомбинировать, они вместе дадут приемлемое качество. При этом какие-то недостатки одного нейтрализуются возможностями другого. GSM-вышки есть практически везде, а Wi-Fi сети - нет. При этом по Wi-Fi точность определения лучше. Поэтому комбинированный способ по полноте и точности лучше, чем каждый в отдельности. Менее известен факт, что у двух роутеров в разных частях города может оказаться одинаковый MAC-адрес. Совмещение GSM и Wi-Fi решает такие коллизии. У этих роутеров, скорее всего, рядом будут находиться вышки с разными идентификаторами - ведь вероятность совпадения в пределах квартала гораздо меньше, чем в масштабах всего города.
В мире есть несколько реализаций такого комбинированного способа геоопределения. И кажется, первый вопрос, с которым сталкивались все разработчики, - где же взять информацию о местоположении сетей Wi-Fi и сотовых вышек?
Когда мы начинали разрабатывать Локатор, на улицах городов были уже сотни тысяч людей с включёнными в телефонах Яндекс.Картами. С согласия пользователя приложение постоянно передаёт его GPS-координаты - на основе этой информации строятся Яндекс.Пробки. Мы подумали, что вместе с этим приложение может отмечать, какой базовой станцией обслуживается телефон в этих координатах, какие видны сети Wi-Fi (при этом, конечно, к самим сетям не подключаясь - чтобы не создавать privacy-рисков).
Человеку для участия в таком краудсорсинге ничего специально делать не нужно - просто пользоваться приложением. Как и о координатах, данные об окружающих Wi-Fi сетях и станциях GSM обезличены. Они практически ничего не «весят», и батарейка от их передачи, соответственно, быстрее не садится.
Таким образом, пользователи стали помогать друг другу:
Одни, с GPS-приёмником в телефоне, узнают точное расположение сетей и передают информацию в Яндекс. Другие, у которых GPS-модулей нет, присылают список сетей, которые видят в данный момент, и получают в ответ своё примерное местоположение на карте.
База собрана и регулярно обновляется. И тут мы сталкиваемся со следующей проблемой.
Вот как нам удалось решить одновременно проблемы с переездом и вышек, и роутеров. От пользователя поступает запрос на определение местоположения вместе с данными о том, какие сети он видит. Если в списке сетей есть та, что была замечена в разных частях города, алгоритм учитывает, сколько сигналов от неё накоплено в каждом районе и возраст последнего. Каждое плотное скопление сигналов от Wi-Fi сети или сотовой вышки мы называем «облаком». Чем больше сигналов в облаке и чем они свежее, тем больше оно заслуживает доверия. Ответом будет, соответственно, самое большое и свежее. А облако, в котором нет сигналов больше месяца, мы считаем устаревшим - даже если для этой сети не появилось более свежего облака в другом районе.
Чтобы ответ был предельно точным, радиус круга должен быть минимальным. Если просто обвести окружность вокруг всех точек сигналов конкретной сети, радиус получится слишком большим. Уменьшить его помогла мат. статистика. Плотность сигналов подвержена нормальному распределению, то есть применимо правило трёх сигм . В окрестность такого радиуса попадает 99,7% точек.
Мы решили пойти дальше и экспериментально подобрали сигме такой коэффициент, который максимально уменьшил радиус, но сохранил приемлемую точность. Удалось это, потому что в большинстве случаев пользователь видит несколько сетей. То есть «открытые» уменьшением коэффициента области, скорее всего, перекрываются другими облаками.
«Одиночки» появляются, например, когда человек передвигается на метро. Телефон теряет связь с сотой на одной станции, а при выходе на другой всё ещё считает, что обслуживается той сотой. Такие сигналы Локатор отфильтровывает. Кроме того, мы установили минимальный порог для облаков, чтобы не полагаться на слишком малочисленные скопления сигналов.
Длинные GPS-треки появляются, например, когда человек едет на машине через весь город. Телефон «тащит» за собой идентификатор вышки с начала маршрута и передаёт, что якобы видит её на всём пути. Известно, что у базовых станций ограниченный радиус действия, так что такие GPS-треки Локатор тоже отфильтровывает. Треки, длина которых укладывается в радиус действия вышки, остаются. Как правило, они заметны в районах, где мало данных. Там они становятся цепочкой небольших облаков.
Сигналы-одиночки, маленькие облака и длинные треки мы считаем «шумом». Когда пользователь видит одну единственную сеть, для которой нам известны только такие сигналы, он получает ответ, что местоположение определить не удалось. Мы считаем это более правильным, чем давать заведомо неверный, по нашим оценкам, результат.
Когда данных было накоплено мало, была ещё одна трудность с объединением всех сигналов в одно облако. Случалось что сигналы от вышки из одного города приходили также из другого. Помогло нам наличие в идентификаторах GSM-сетей кода зоны местоположения - LAC (Location Area Code). Поскольку вышки с одинаковым кодом должны по стандарту находиться рядом, облакам, которые оказались «не в своём городе» (т.е. среди облаков с другим LAC), Локатор стал придавать заниженный вес.
Используя эту методику, мы получили следующие цифры:
Можно ли добиться лучшего качества? Да. Преимущество метода в том, что при определённой зрелости алгоритмов достаточно лишь собирать больше данных, чтобы определять местоположение точнее. А это достаточно легко, потому что растёт и количество Wi-Fi сетей, и количество пользователей наших приложений.
Но есть технологические пределы:
А чтобы продолжительность ежесуточного расчёта не росла линейно с ростом истории GPS-сигналов, мы добились «аддитивности» облаков. Теперь достаточно хранить лишь несколько показателей на каждое облако, и не нужно каждые сутки заново обрабатывать всю старую историю.
Готовить более полный ответ оказывается неэффективно. Если кластеризовать каждую комбинацию сетей в отдельное облако, получается комбинаторный взрыв. Объём готовых ответов растёт на несколько порядков, а при частичном совпадении сетей на подготовку ответа нужно даже больше расчётов.
Вообще собрать такую базу можно тремя способами:
На различных сайтах и форумах часто встречаются вопросы, почему навигатор не определяет местоположение? Причин этой неисправности может быть немало.
Если вы включили навигатор после внушительного перемещения (около 1000 километров), то ему необходимо много времени для того, чтобы повторно обнаружить спутники. Если пребывать в неподвижном состоянии, этот время может еще больше увеличиться. Для того чтобы навигатор показал местоположение ему необходимо «видеть» небо. Для более точного позиционирования приемнику необходимо ловить 4-5 спутников, в общем, чем большее количество спутников, тем прибор будет точнее показывать местоположение.
Зачастую, причиной того, что навигатор не определяет местоположение, может быть слишком плотная застройка, густые деревья, или, к примеру, крыша автомобиля. Другое дело, что сигнал может быть слишком слабым и недостаточным для того, чтобы обнаружить расположение того объекта, где установлен прибор.
Если навигатор не определяет местоположение, значок сигнала зачеркнут, а, если сигнал слишком слабый, то цвет индикатора сигнала становиться красным.
Зачастую, устройство не определяет местоположение после перепрошивки. Приемник может начинать подключение к спутникам, которые не видны у нас, и поэтому прибор не может автоматически показать местонахождение. Для загрузки правильного альманаха необходимо осуществить установку координат. Есть два режима, как это можно сделать: автоматический и ручной. Автоматический режим требует больше времени.
В ручном режиме самостоятельно выбирается страна и город нахождения и приемник вскоре сам находит правильные спутники. Почему устройства не ловят спутники после процедуры обновления ПО с официального сайта? Часто причина кроется в открытии неправильного COM-порта или же в неисправности GPS-антенны. Правильный порт может быть открыт лишь правильной прошивкой, а если загрузить в GPS-навигатор неправильную версию прошивки, то он станет давать сбои в работе иле не будет работать вовсе.
Причиной того, что навигатор не показывает местоположение, тоже может являться сбой альманаха. Это может произойти, если прибор хранится без питания, но после перезагрузки альманаха приемник будет работать стабильно. Если это не поможет, то еще можно сделать полный сброс настроек.
Также вполне возможно, что вышел из строя усилитель мощности (в таком случае необходима его замена) или же произошло механическое повреждение прибора (удары, влага), в таком случае необходимо провести диагностику. Но, если, в итоге, в меню определения числа спутников ни один из них не появился, то, скорее всего, проблема с навигатором достаточно серьезная и надо обращаться в сервисный центр, который, как правило, проведет бесплатную диагностику.
В этой статье я расскажу о причинах почему ваш iPhone неправильно показывает или определяет местоположение (вашу геолокацию), а так же расскажу что делать.
Данная статья подходит для всех моделей iPhone Xs/Xr/X/8/7/6/5 и Plus на iOS 12. На более старых версиях могут отличаться или отсутствовать указанные в статье пункты меню и аппаратная поддержка.
Некорректное определение геолокации чаще всего связано с расположением объекта, и в меньшей степени зависит от программных ошибок. Перечислим основные причины, почему iPhone может врать с демонстрацией истинного местонахождения.
При проблемах с определением местоположения в первую очередь следует проделать следующие шаги:
Более простым вариантом этого действия является банальное переключение тумблера служб геолокации.
Еще одним эффективным способом борьбы с неправильной работой GPS/Глонасс является откат параметров к заводским настройкам. Причем необязательно форматировать весь iPhone целиком. Чтобы сбросить параметры местоопределения, пройдите в «Настройки» - «Основные» - «Сброс» - «Сбросить геонастройки».
Увеличить
Не всегда работы спутников связи достаточно для точного определения геолокации. Чтобы улучшить показатели координат, следует включить Wi-Fi. За счет обращения к станциями беспроводной интернет улучшает позиционирование на местности. Включить Wi-Fi можно в настройках или в пункте управления.
Увеличить
Самым радикальным исправлением программной ошибки является восстановление iPhone с нуля. Сделать сброс можно через настройки iOS (аналогично сбросу геонастройки) или через компьютер с включенным iTunes. Во втором случае следует подключить смартфон к ПК и после определения iPhone сделать его восстановление.
Всем привет! Службы геолокации, на сегодняшний день, являются одной из ключевых функций для абсолютно любого устройства. И гаджеты от Apple не являются каким-то исключением. Нет, конечно, звонить, писать смс, делать заметки и выходить в интернет вполне можно без и их использования. Однако есть немало программ, приложений и сервисов, в которых без определения точного позиционирования вообще никуда.
Взять, к примеру, те же карты или максимально крутую (на мой взгляд) опцию «Найти iPhone» (режим пропажи, удаленная блокировка и т.д.). Согласитесь, что без обнаружения координат использовать их было бы сильно затруднительно (если вообще возможно). Так что геолокация вещь очень нужная - давайте узнаем о ней поподробней...
Поехали же!:)
Как Вы уже наверно поняли, под этим термином скрывается более привычное нам слово - навигация. Именно она отвечает за определение точного местоположения Вашего iPhone или iPad.
Пользоваться навигацией можно на абсолютно всех iOS-устройствах, кроме:
Именно на этих гаджетах службы геолокации не работают, по простой причине - Apple не устанавливает в них GPS-приемники.
Зачем вообще она нужна? Ну здесь все понятно - существует масса программ (карты, навигационные приложения, погода и т.д.), для нормальной и корректной работы которых, эти службы просто необходимы.
На что стоит обратить внимание при использовании:
Как я , это нормально и паниковать не стоит. Просто обращайте внимание на в верхней части экрана, и если значок геолокации горит постоянно - значит какое-то приложение его непрерывно использует. Лучше закрыть его или своевременно отключить доступ этой программе к GPS. Как это сделать...
Управлять ими, как и любой другой функцией, можно в настройках устройства. Переходим в Настройки - Конфиденциальность - Службы геолокации.
Здесь их можно либо полностью включить или выключить. Плюс отображаются программы, которые в своей работе задействуют эти службы, и есть возможность отключить принудительно навигацию для какого-либо отдельного приложения.
Доступны два решения:
Лучше оставить второй вариант. Тогда получается, что GPS вроде как всегда включен, однако использоваться будет только в тот момент, когда необходимо самой программе. Что позитивно сказывается на зарядке:)
Кстати, если вы только купили устройство, то при , также доступна возможность активации геолокации.
Великолепная опция, благодаря которой можно найти iPhone или iPad. Для того, чтобы выполнить поиск устройства, необходимо соблюдение двух условий:
Если эти два условия соблюдены, то начинаем искать! Не важно откуда, с компьютера или мобильного, переходим на сайт iCloud , а далее указываем Apple ID и пароль (тот который установлен на пропавшем гаджете).
Достаточно нажать на кнопку «найти iPhone» и через некоторое время вы увидите на картах то место, где он находится сейчас.
Плюс будет возможность выполнить некоторые действия с ним:
Переходим к самому неприятному, к проблемам...
Именно механическая поломка, когда не работает модуль GPS, встречается достаточно редко.
И здесь понятно что делать - либо пользоваться без него, либо заменить в сервисном центре. Однако часто проблемы можно решить не прибегая к помощи специалистов.