Проблемы с геолокацией

Не могу начать игру
Вижу только надпись "вычисляем расстояние" и никаких подсказок

Вероятнее всего твоему браузеру запрещено использовать данные геолокации. Возможно эта функция ограничена операционной системой либо антивирусом. Если надпись "вычисляем расстояние" не изменилась на цифры (расстояние до зоны старта), это значит, что твой смартфон ни разу не передал игре ни одной координаты - игра просто не может определить твоё местоположение и, следовательно, не может запуститься. Расстояние должно отображаться независимо от того, где ты находишься - даже если в соседнем городе, при включенном и нормально работающем GPS покажет несколько десятков километров.

Главное условие для начала игры - чтобы работал GPS! Но что если он не работает как полагается и показатель расстояния не появляется?

У проблемы может быть несколько причин и, соответственно, несколько способов решения:

Устройство с "заморочками"

На данный момент известны несколько устройств, которые на определённых прошивках весьма своеобразно работают с геолокацией в браузере. К таким устройствам относятся:

  • Huawei P20 Pro
  • Honor 10
  • Honor view 10
  • Honor 9N
  • Huawei Y9 2019

Проблемы проявляются на Android версий 9, 9.1 и 10. Мы пытаемся выявить причины и устраненить эти неприятности, но, боимся, что это находится за пределами наших возможностей. Дело в том, что не все смартфоны разрешают браузерам передавать куда-либо свою геолокацию. Это ограничение на уровне операционной системы и мы с ним, увы, ничего сделать не можем. На данный момент, если тебе "повезло" владеть одним из таких устройств, к сожалению, играть в ВелоQuiz с такого устройства можно только при помощи дополнительных приложений :(

Попробуй взять на время игры смарт друга/родственника или пригласи кого-то пройти квиз вместе с тобой.

Диковинный браузер

В некоторых браузерах, установленных по умолчанию от производителя смартфона, иногда используются нестандартные настройки безопасности или вовсе их функционал намеренно урезан. Для игры отлично подходят всем хорошо известные Chrome и Opera. Их легко найти и бесплатно установить в Play Market или AppStore. Попробуй любой из них и быть может он даже станет твоим основным браузером.

Режим энергосбережения

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

Телефон "тупит" :)

Иногда бывает так, что если телефон давно не перезагружался, какая-нибудь незначительная ошибка программного обеспечения может привести к некорректной работе какого-либо компонента или датчика устройства. Просто попробуй его перезагрузить. А лучше полностью выключить и затем, выдержав паузу секунд 20-30, снова включить.

Датчик GPS завис или "уснул"

Если перезагружать устройство по какой-то причине не хочется, можно попробовать сначала отключить датчик GPS (в настройках может называться "Геолокация") и примерно через минуту снова включить. Но лучше всё-таки полностью перезагрузить девайс и не заморачиваться с такими полумерами.

Недостаточно разрешений браузеру

Бывает и так, что все датчики работают нормально, но браузеру запрещено их использовать. Прежде всего стоит попробовать зайти при помощи браузера, к примеру, на Яндекс-Карты (при входе нужно будет отказаться использовать приложение "Яндекс Карты"). Если Яндекс не сможет определить твоё положение с точностью до дома, значит вероятнее всего проблема именно в ограничениях прав браузера.

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

  1. Зайти в "Настройки";
  2. Выбрать раздел "Приложения";
  3. Найти в нём свой браузер;
  4. Проверить выдано ли ему разрешение на геолокацию и разрешить.

Ты ответил(-а) "Нет" (или "Запретить") на вопрос браузера о предоставлении доступа к твоему местоположению

Ой, беда-беда! Чтобы игра работала, нельзя запрещать браузеру определять твоё местоположение. Иначе как она узнает пора ли тебе выдать очередной вопрос? Но, допустим, ты не глядя по привычке нажал(-а) не ту кнопку. В этом случае нужно найти в настройках браузера сохраненные параметры для сайтов и разрешить передачу геолокации для нашего сайта. Все браузеры разные, а некоторые и вовсе не позволяют эту настройку изменить. Поэтому точной инструкции где и что искать у нас нет. Если не знаешь как ситуацию исправить, есть 2 варианта:

  1. Очистить полностью историю браузера со всеми настройками посещённых сайтов
  2. Открыть игру в любом другом браузере (только на этот раз повнимательнее с вопросами, которые он будет задавать).

Не помогает?

Если после всех манипуляций ничего не получилось, пиши — разберёмся.

Расстояние до следующей точки вычисляется слишком долго

Если до этого расстояние отображалось нормально, то есть всего одна рекомендация — начать двигаться. Так датчик GPS быстрее обновит твои координаты и сможет рассчитать дистанцию. Дело в том, что чем дольше стоишь на одном месте, тем реже обновляется местоположение. Это сделано намеренно — с целью экономии заряда батареи и интернет-трафика.

Если уже едешь и всё равно никакой реакции, можно попробовать обновить страницу. Это принудительно отправит твои координаты на сервер и может немного ускорить процесс.

Не могу "поймать" нужную точку

Вроде находишься рядом с нужной точкой, а индикатор расстояния показывает, что до неё ещё несколько десятков метров или показатель "скачет" — то несколько метров, то пара сотен.

Такое поведение индикатора расстояния говорит о том, что датчик GPS не может вычислить твоё местоположение, либо вообще не используется для его определения. То есть точность твоего позиционирования вместо положенных для GPS 2-10 метров составляет ±50-200 метров (и скорее всего определяется по точкам доступа WiFi или базовым станциям сотовой сети).

В большинстве случаев такая плохая работа датчика GPS связана с тем, что на телефоне установлено неправильное время. Даже отставание (или спешка) часов всего на одну минуту лишает твой смартфон возможности использовать данные передаваемые спутниками. Дело в том, что для определения местоположения используется сигнал с нескольких спутников. Все они ежесекундно синхронно передают одинаковые сигналы основанные на точном времени, а твой аппарат принимает их и сравнивает задержки между ними и своими часами. Если время на спутнике и на приёмнике сигнала (твоём смартфоне) идеально совпадает, то путём нехитрых вычислений аппарат получает свои точные ккординаты на поверхности Земли. А вот расхождение локальных часов и спутника даже всего в одну секунду "уносит" твои координаты далеко за пределы нашей планеты. Разумеется, приёмники легко обнаруживают это недоразумение и путём перебора значений пытаются компенсировать возможную погрешность твоих часов, но как ты прекрасно понимаешь, перебор невозможно выполнять до бесконечности. Поэтому если с погрешностью в несколько секунд смартфоны успешно справляются, то при расхождении более чем в минуту, устройство просто будет игнорировать данные от GPS.

Лечится это просто: установи правильное время и выбери корректный часовой пояс. Легче всего это сделать выбрав в настройках часов опцию "Использовать время сети" и "Использовать часовой пояс сети".

Как можно ускорить определение местоположения?

Основной причиной медленного определения гео-позиции являются особенности работы GPS-модуля смартфона. Для того, чтобы определить точное местоположение датчику GPS необходимо получить сигнал как минимум от 3-х спутников. А на "поиск" этих спутников ему требуется от нескольких десятков секунд до нескольких минут. Когда экран заблокирован, обычно с целью экономии энергии датчик GPS отключается и "теряет" сигнал от от них. Стоит тебе разблокировать экран и открыть игру, как смартфон снова начнёт заниматься поиском спутников и снова ему на это понадобится какое-то время. Даже если ты в этот момент находишься прямо на нужной точке, игра может каждые пару секунд показывать тебе разные значения — например, что до места назначения ещё то 5 м, то 25, а может и вовсе метров 300 (даже при том, что ты никуда не двигаешься).

Мы можем предложить 2 решения этой проблемы (идеально — использовать оба совета):

1. Стараться не блокировать экран телефона в процессе игры

Разумеется, это осуществимо только при наличии держателя для телефона. Но это действительно удобно. Искать точки станет проще, так как ты будешь в реальном времени видеть оставшееся расстояние и даже на самом процессе "достать-убрать телефон в карман" за всю игру сэкономишь как минимум минут 5 времени. Не забудь перед игрой отключить автоматическую блокировку экрана или увеличить интервал автоблокировки (10 минут — вполне комфортное значение).

2. Запустить любой GPS-трекер или навигатор

Это программа, которая записывает пройденный маршрут. Есть множество бесплатных вариантов: Strava (в данный момент доступна только через зарубежные VPN), Runtastic (Adidas Running), Endomondo, Nike Run Club — это, пожалуй, самые известные. Нужно установить любое из этих приложений и перед игрой начать запись тренировки.

Таким же полезным свойством обладает любое приложение-навигатор "Яндекс Карты", "Карты" от Google и т.п. Перед игрой можно построить маршрут в любую точку, находящуюся вне игровой области (например, домой) или на финальную точку игры. Выбор вида транспорта не имеет значения, место назначения - тоже. Главное, чтобы навигатор был запущен фоном и вёл тебя куда-то. Разумеется, следовать его подсказкам не нужно и можно убавить звук до минимума, чтобы его голосовые подсказки не отвлекали.

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

Но обрати внимание, что в современных операционных системах есть настройки контроля фоновой активности приложений, которые даже в этих трекерах и навигаторах могут принудительно отключать датчик GPS с целью экономии энергии. Если не знаешь как это исправить — пиши, мы подскажем.

Мне кажется, что индикатор расстояния не работает
Постоянно показывает одну и ту же дистанцию до точки, несмотря на то, что я передвигаюсь

Точность показаний зависит от расстояния до искомой точки. Если ты находишься на расстоянии более 100 м от неё, дистанция будет окгругляться до сотни в меньшую сторону. Т.е. при приближении ты увидишь только "500 м ... 400 м ... 300 м" и так далее до 100. Так и должно быть. Это не от того, что геолокация плохо работает. Такое округление сделано специально, чтобы игрок более осознанно выбирал направление движения, а не слепо ориентировался на "навигатор".

На дистанциях менее 100 м показываются десятки метров, а в непосредственной близости от точки точность позиционирования увеличивается до 1 м.
Таким образом, если едешь уже довольно долго и постоянно видишь одно и то же расстояние (Например, "100 м"), значит просто ты едешь не в нужном направлении, а мимо него — по радиусу от цели. Сверни влево или вправо и увидишь, что очень скоро расстояние начнёт уменьшаться или увеличиваться.

Однако бывает и так, что показатель дистанции не изменяется достаточно продолжительное время даже когда точно уверен, что движешься в нужном направлении. Из-за чего такое происходит и как с этим бороться?

Проблемы доступа к интернет

Игра каждые несколько секунд сверяет твоё местоположение с данными сервера о размещении контрольных точек. Если геопозицию сверить не удалось, новые данные о расстоянии получить невозможно. Если показатель дистанции стал красным, это говорит о проблемах с геолокацией — уже долгое время невозможно определить твоё точное местоположение. Если он серый и становится всё светлее — последняя проверка расстояния до точки была более 30 секунд назад (может быть слабый сигнал, нет подключения к интернет или устройство согласно данным GPS никуда не передвигается). Если цифры чёрные — всё в порядке и работает нормально, беспокоиться не о чем.

Проблемы геолокации

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

0.012 s.