Можно ли использовать устройство GPS с компьютером для определения местоположения в браузерах?

8

У меня есть два устройства GPS, одно от NMEA и одно от Garmin. Я хотел бы знать, возможно ли использовать любой из них, чтобы обеспечить более точное местоположение для браузеров (Chrome, Firefox).

У меня отлично работает веб-приложение на планшетах со встроенным GPS, но не на ноутбуках.

user68740
источник
1
какая ОС? ОС должна будет поддерживать API для этого ..
tumchaaditya
Почему вы хотите использовать устройство GPS с ноутбуком, в то время как вы можете легко узнать свое местоположение с помощью Wi-Fi или если у вас есть доступ в Интернет. Это довольно точно, не так ли?
Чт Ён Тун
2
@TitanZack: геолокация Wi-Fi - это, по сути, «взлом», который зависит от присутствия многих близлежащих, давно работающих сетей Wi-Fi. Это неэффективно во многих средах, например, в стране, где вы являетесь единственной сетью Wi-Fi, или если у вас нет беспроводного чипсета на вашем компьютере. И вообще, это в значительной степени просто попытка рассказать команде о том, где вы находитесь. Ничто в WiFi не переводит непосредственно в местоположение; все это основано на экспериментальных данных и статистике. GPS с точностью до метра, независимо от того, где вы находитесь, пока вы находитесь на поверхности Земли.
allquixotic

Ответы:

6

Чтобы это работало на ноутбуке, вам понадобится поддержка «по всему стеку» следующим образом:

  • Поддержка драйверов - у ноутбука должны быть аппаратные драйверы, которые могут распознавать устройство GPS и взаимодействовать с ним, будь то через USB или другой протокол. Драйверы обычно реализуются в ядре, но если вы точно знаете, что у вас есть правильные драйверы, реализация для вас не важна.
  • API пользовательского пространства , использующие драйверы. Независимо от того, что представляет собой интерфейс драйвера или как он работает, стек пользовательского пространства должен знать о наличии аппаратного устройства GPS и должен знать, как получить доступ к оборудованию через программный интерфейс. Если у вас есть драйверы для устройства GPS, то, вероятно, у вас также есть интерфейс для программирования пользовательского пространства ... но есть ли у вас следующая часть?
  • Приложения, использующие API-интерфейсы пользовательского пространства. Ваше клиентское приложение (предположительно, веб-браузер) должно знать API-интерфейс драйвера пользовательского пространства и иметь возможность использовать его для поддержки служб определения местоположения.
  • Приложение должно поддерживать протокол местоположения, совместимый с запрашивающим его веб-приложением. Стандарт W3C для определения местоположения конечных точек - это API-интерфейс определения местоположения W3C, так что это хорошее место для начала. Браузер должен в основном понимать, что когда веб-сервер запрашивает местоположение, браузер «понимает» запрос достаточно хорошо, чтобы знать, что ему нужно получить данные геолокации от пользователя.
  • Приложение должно интегрировать драйвер в протокол местоположения в качестве поддерживаемого бэкэнда .

Таким образом, вы получите технологический стек примерно так:

Драйверы ядра <-> Драйверы / библиотеки пользовательского пространства <-> Бэкэнд геолокации веб-браузера, специфичный для библиотек пользовательского пространства вашего устройства или инфраструктуры <-> Уровень протокола веб-браузера, который понимает API запроса геолокации на основе HTTP, такой как API геолокации W3C.

Прямо сейчас я думаю, что части, которые, скорее всего, уже будут доступны:

  • Драйверы ядра и библиотеки пользовательского пространства для устройства должны быть предоставлены производителем.
  • API геолокации W3C уже давно поддерживается в Chrome и Firefox.

Часть, которая, вероятно, будет отсутствовать - это «бэкэнд геолокации веб-браузера».

То есть я сомневаюсь, что Firefox / Chrome действительно поддерживает аппаратную интеграцию для устройств GPS. На данный момент мне известна только одна реализация: Firefox поддерживает устройства GPSd . Так что, если ваше устройство интегрируется с промежуточным программным обеспечением GPSd и ваша операционная система является одной из поддерживаемых, это возможно. В противном случае, скорее всего, нет (хотя это может измениться, если производитель решит поддерживать весь стек, включая плагин для браузера).

allquixotic
источник