GPS глонасс
Купил себе USB–приёмник GPS и ГЛОНАСС. Наконец–то вживую увидел, как устройство может определить своё местоположение. Много лет назад увидел в Центре обновлений 2ГИС Дополнительный модуль GPS, но в действии никогда не видел, потому что ни в одном из попадавшихся мне компьютерах не было GPS. Видимо, проще докупить внешний GPS–приёмник, чем
найти на барахолке б/у ноут со встроенным.
Как программисту, конечно, было интересно, как это всё дело реализовано программно. Оказывается, 100500 лет назад были какие–то GPS–приёмники, которые подключались к компьютеру через COM–порт, и по сей день, хоть COM–портов уже нет, [да и вообще их встраивают](ru.aliexpress.com/item/7-inch-Original-W8-Tablets-pc-MOMO7W-Intel-Atom-Quad-Core-1GB-16GB-Windows-8-Tablet/32471361065.html), USB–приёмник всё равно виден как виртуальный COM–порт, и программы к нему подключаются и работают по протоколу NMEA (в моём устройстве так) или GARMIN. Я прямо в 2ГИС, когда открываю настройки, вижу выбор COM–порта и скорости. На самой высокой скорости работает без проблем. Однако, так как это COM–порт, то занимать его может только одна программа в каждый момент времени. Я ещё поставил u-center от производителя USB–свистка, и действительно, я не могу одновременно подключиться из 2ГИС и u-center.
Дома ни в какую не получалось ни в одной из программ домучить, чтоб определила координаты. Я уж думал, не работает что–то. Но вот на улице всё было совсем по–другому, и я пока в университет ехал, на всём маршруте хорошо работало, и я с любопытством понаблюдал, как меня по карте везут через весь город, с какой скоростью. Я даже, пока иду, могу узнать свою скорость. Получается, везут меня в среднем со скоростью 23км/ч, а иду я со скоростью 8–10км/ч, и это примерно согласуется с тем, что доехать мне минут 40, а дойти пешком — порядка двух часов. Классная игрушка!
При этом остаются некоторые вопросы. Например, я помню, что браузер иногда спрашивал меня, разрешить ли мне определить местоположение, меня это всегда забавляло: «и как же ты собираешься это сделать, если у меня нет GPS–приёмника»? Интуитивно догадываюсь, что по айпишке и базе данных типа
GreyLink CustomLocations с точностью до города, но ведь должен же быть способ заставить эту фичу работать полноценно. Теперь, когда он–таки появился, и когда я увидел, как он работает в двух программах, я обратил внимание на другую вещь: а ведь браузер, когда спрашивает про определение местоположения, не спрашивает у меня COM–порт и скорость, в отличие от 2ГИС и u-center. Тем более интересно, и как же он собирается это сделать. Кроме того, интересно, как должны работать программы, штампующие координаты в метаинформацию JPEG? Типа «отключите в своём 2ГИС навигацию, чтоб я сейчас к приёмнику подключилась, узнала координаты, штампанула их в JPEG, и вот тогда можете обратно включить навигацию в 2ГИС».
Гипотетический ответ, по–видимому, в
Sensors Platform. Для моего устройства есть два типа драйверов, тот, который прислал на почту продавец — это просто виртуальный COM–порт, и в Диспетчере устройств появляется именно COM–порт. А другой — датчик. Если установить этот драйвер, то в Диспетчере устройств появляется группа Датчики, и в ней — мой GPS–приёмник. Виртуальный COM–порт, впрочем, тоже есть, только после установки у него стал другой номер и название, так что, похоже, драйвера взаимоисключающие. Если браузер и программа, штампующая координаты в метаинформацию JPEG, работают через LocationAPI, то это кое–что проясняет, но ведь эти API только на Windows 7 появились. А как до этого всё работало?