Время чтения: 10 минут.
Введение
Как и почти все, я включал геолокацию, не задумываясь, как это работает, но проблемы, возникшие на моем смартфоне вынудили меня углубиться в тему и написать статью, чтобы, в первую очередь, упорядочить собственные знания и во вторую, сэкономить ваше время при решении схожих задачь.
Статья написана любителем и не претендует ни на что. Если нашли ошибки, укажите на них в комментариях.
Т.к. смартфон является единсвенным инструментом картографии для подавляющего числа мапперов вне дома, неработающая геолокация может стать катастрофой. Чтобы этого не произошло, нужно выполнить ряд простых действий, но сначала термины)
Немного терминологии:
1. GNSS - Global Navigation Satellite System
Глобальная навигационная спутниковая система. Именно ее большинсво людей называют ошибочно GPS. В мире есть несколько систем GNSS: ГЛОНАСС - Россия, Navstar GPS - США, Beidou - Китай, Galileo - Европа, IRNSS - Индия и другие. Полное покрытие имеет только ГЛОНАСС, GPS и Beidou. Все (или почти все) современные модули геолокации смартфонов используют несколько систем навигации одновременно. Как правило, это: GPS, GLONASS, Galileo, Beidou.
2. Альманах
- вид данных, которые передаются спутником на землю. Содержит информацию об орбитах всех спутников. Эта информация хранится на смартфоне и позволяет спрогнозировать примерное местоположение спутника в течении времени. (Например: Дня) Эта информация достаточно долго хранится, но на ее основе будет не точное определение геопозиции.
Альманах для GPS транслируются каждые 12,5 минут, ГЛОНАСС каждые 2,5 минуты. Албманах может потерять свою актуальногсть, если на смратфоне сбилось время или местоположение изменилось на 100-200-300 км.
3. Эфемерида
- точное местоположение каждого спутника. Гораздо точнее альманаха, обновляется каждые 30 секунд, но акутальность данных всего 30 минут. На приктике: Отключили геолокацию на час, при включении, модуль геолокации сначала обратиться к альманаху, а затем уже к эфемериде, что увеличит время поиска точной позиции.
4. Холодный старт
- запуск геолокации после длительного отключение. В этом случае, данные эфемериды и альманаха станут неактуальными и смартфону придется с нуля искать спутники. Без использования вспомогательный технологий, этот процесс может занять до 10-20 минут.
5. Теплый старт
Запуск геолокации, которая ранее использовалась (но не раньше 30 минут с последнего старта). В этом случае, данные альманаха будут актуальный, а эфемериды устареют.
6. Горячий старт
Запуск геолокации, которая работала менее 30 минут назад. Поиск местоположения будет почти мгновенной, так как данные альманаха и эфемериды актуальны.
7. Assisted GPS
A-GPS - технология, которая позволяет почти мгновенно определять геолокацию даже в зданиях. Оно обновляет данные о местоположении спутников не с самих спутников, а загружая данные из сети. Это позволяет почти мгновенно запустить геолокацию даже при холодном старте. Мне не встречался ни один современный смартфон, который бы не поддерживал A-GPS.
Думаю, этого достаточно для поверхностного понимания работы геолокации на смартфоне. Теперь о том, как улучшить скорость и точность ее определения.
Как улучшить геолокацию на смартфоне.
Я буду описывать действия на примере дегуглизированной прошивки E OS на android 14 , но предполагаю, что на других прошивках действия будут схожи.
1. Включаем A-GPS
Настройки - Местоположение - Использовать A-GPS.
Как говорилось выше, это позволит обновить по сети данные о местоположении спутников (Альманах), что в разы ускорит холодный старт.
2. Поиск сетей Wi-Fi и Bluetooth
Настройки - Местоположение - Сервисы геолокации - Поиск сетей Wi-Fi и поиск устройств Bluetooth - включить.
Они позволяют определять свое местоположение относительно других устройств. В описании указано, что функция работает даже при выключенном Wi-Fi и Bluetooth, на практике гораздо лучше, когда модули включены. В идеале, датчик геолокации, wi-fi и bluetooth работают вместе, чем увеличивают точность местоположения, но в крупных городах, где многоэтажки, всякие антены и прочее, сигнал спутника гораздо слабее, в помещении и вовсе почти не поределяется. В метсах, где сигнал GNSS глушат, wi-fi и bluetooth вовсе не заменимы.
3. Отключаем ограничение поиска Wi-Fi
Настройки - О телефоне - Номер сборки - Тап несколько раз, пока не разблокируется режим разработчика - Назад - Система - Для разработчиков - Ограничивать поиск сетей Wi-Fi - Отключить
Дело в том, что гугл в какой то момент ограничил поиск сетей до 4 раз в 2 минуты. Вроде, чтобы не расходовать заряд батареи, который при постоянном поиске сетей будет снижаться. Это надо иметь ввиду при походах за город, хотя на открытых местностях спутники достаточно быстро находятся и точно определяют местоположение, так что вне города определение wi-fi и bluetooth из пункта 2 можно отключить, а в городе всегда есть где подзарядиться, так что не вижу в этом особо проблемы.
4. Калибровка компаса
Напрямую с точностью местоположиения не связан, хотя прирост, в теории, возможен. Что явно станет лучше, это направление стрелки при навигации, котороая может смотреть не в сторону движения, при плохой калибровке. Так же, это поможет с проблемой напаправления фото, если вы занимаетесь сьемкой панорам.
Для проверки калибровки компаса, рекомендую скачать приложение с F-Droid (свободный аналог гугл плей): https://f-droid.org/ru/packages/com.bobek.compass/ Справа серху этого компаса будет датчик его калибровки (Треугольник, похожий гна знак сети). Рисуйте смартфоном восьмерку по горизонтальной плоскости, пока точность не станет максимальной. мне 5-7 восьмерок вполне хватает.
Обычно это действие не требуется, но если ваши задачи требуют повышенной точности, таких как панорамы, треки для отрисовки ОСМ, или мелкие обьекты, типа подъездов, лучше включить геолокацию и нарисовать в воздухе несколько восьмерок.
5. Проверьте точность даты и времени на смартфоне.
Спутник передает сигнал своего времени и местоположения. Телеофн сравнивает со своим и на основе этого строит геолокацию. Чем больше отличается время на смартфоне от фактического, тем больше будет погрешность определяемого навигатором местоположения относительно вашего фактического. Как то так. Андроид берет время с ntp серверов, мобильного оператора, сети и т.д., но почти в 100% случаев проблем с временем нет. В теории, они могут появится, если вы долго находились без сети и андроид пользовался своими внутренними часами, но этот вариант не вижу смысла рассматривать.
6. Проверить чехол.
Убедитесь, что на чехле вашего смартфона нет магнитов. (В идеале, чтобы чехол был не металлический). Они могут исказить ваше местоположение. Чаще всего, магниты встречаются на чехлах книжках.
Прочая информация
-
Для хорошей геолокации требуется минимум 4 спутника. У каждого есть свой радиус действия. Пересечение окружностей 3 спутников даст местоположение с погрешностью 10-20 метров. Четвертый спутник снизит погрешность до 2-3 метров
-
Телефон так же определяет геолокацию по сотовым вышкам и насколько мне известно, дополнительных действий от вас тут не требуется, все происходит автоматически, была бы связь
-
Многие знакомы с термином триангуляйция, однако когда речь идет о геопозиции, этот термин несвосем верен. Правильный: Трилатерация - Триангуляция - Основана на измерении углов, где для местоположения одной точки нужно знать как минимум две других. - Трилатерация - Основана на измерении расстояний, где для уточнение точки требуется как минимум три точки (в нашем случае: спутника) с известным местоположением.
-
На маркетплейсах продаются наклейки, которые улучшают качества сигнала. Я не нашел вменяемого обоснования работоспособности данного метода, поэтому решил не тратить на них денгьги.
-
GPSTest - свободное ПО для теста ГНСС смартфона. Функционала хотелось бы больше, но в целоп, неплохое приложение. https://f-droid.org/ru/packages/com.android.gpstest.osmdroid/
-
Иногда достаточно просто перезагрузить смартфон, что перезагрузит и модель геолокации, что может сказаться на его работе.
-
Если совсем ничего не помогает, возможно, дело в самом модуле и надо нести смартфон на диагностику. Есть программы для теста работоспособности модуля геолокации, но я не пользовался, не подскажу.
-
Говорят, на некоторых смартфонах геолокация работает лушче, чем на других, рейтинг где то видел, но подбирать смартфон по качеству геолокации, на мой взгляд, неправильно.
З.Ы. Началось все с того, что у меня никак не работала геолокация в помещении, несмотря на включенный блютус и вифи. Стал углубляться, проблему решил, а с ней и проблему индор маппинга (Маппинг всяких ТЦ.)
Удачи в картографии и хорошей вам геолокации.😉
Источники:
- Личный опыт и наблюдения
- https://b2field.ru/blog/geolokacija-v-smartfone/
- https://anout.ru/geolokatsiya-chto-eto-i-kak-ispolzovat
- https://www.gnscomponent.com/news/what-is-an-rtk-what-is-the-difference-between-26087112.html
- Андрей Масалович - Проблемы геолокации GPS https://dzen.ru/video/watch/6405a37c36fc3309ce6d3f95?utm_referrer=am.news
- https://baskcompany.ru/info/news/almanac_ephemeris.html
Discussion