8

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

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

1 ответ1

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 и ваша операционная система является одной из поддерживаемых, это возможно. В противном случае, вероятно, нет (хотя это может измениться, если производитель решит поддерживать весь стек, включая плагин для браузера).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .