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