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