Ist es möglich, ein GPS-Gerät mit einem Computer zu verwenden, um den Browsern den Standort bereitzustellen?

8

Ich habe zwei GPS-Geräte, eines von NMEA und eines von Garmin. Ich würde gerne wissen, ob es möglich ist, einen von beiden zu verwenden, um einen genaueren Standort für Browser (Chrome, Firefox) bereitzustellen.

Die Webanwendung, die ich habe, funktioniert hervorragend auf Tablets mit integriertem GPS, aber nicht mit Laptops.

user68740
quelle
1
welches Betriebssystem? Das Betriebssystem muss APIs dafür unterstützen.
Tumchaaditya
Warum möchten Sie ein GPS-Gerät mit einem Laptop verwenden, während Sie Ihren Standort einfach über WLAN oder mit Internetzugang ermitteln können? Das ist ziemlich genau, nicht wahr?
Do Yein Tun
2
@TitanZack: Die Wi-Fi-Geolocation-Sache ist im Grunde ein "Hack", der auf der Anwesenheit vieler nahegelegener, lang laufender WiFi-Netzwerke beruht. Es ist in vielen Umgebungen unwirksam, z. B. in dem Land, in dem Sie das einzige WLAN-Netzwerk sind, oder wenn Sie keinen drahtlosen Chipsatz in Ihrem PC haben. Und im Allgemeinen ist es so ziemlich nur ein Versuch, dem Baseballstadion zu sagen, wo Sie sich befinden. Nichts an WiFi wird direkt in den Standort übersetzt. Alles basiert auf experimentellen Daten und Statistiken. GPS ist bis auf das Messgerät genau, unabhängig davon, wo Sie sich befinden, solange Sie sich auf der Erdoberfläche befinden.
Allquixotic

Antworten:

6

Damit dies auf einem Laptop funktioniert, benötigen Sie Unterstützung "im gesamten Stapel" wie folgt:

  • Treiberunterstützung - Der Laptop muss über Hardwaretreiber verfügen, die das GPS-Gerät erkennen und mit ihm verbinden können, unabhängig davon, ob es sich über USB oder ein anderes Protokoll handelt. Die Treiber werden normalerweise im Kernel implementiert. Wenn Sie jedoch wissen, dass Sie über die richtigen Treiber verfügen, ist die Implementierung für Sie nicht wichtig.
  • Userspace-APIs, die die Treiber verwenden - Unabhängig von der Treiberschnittstelle oder ihrer Funktionsweise muss der Userspace-Stack das Vorhandensein des Hardware-GPS-Geräts kennen und wissen, wie über eine Programmierschnittstelle auf die Hardware zugegriffen werden kann. Wenn Sie Treiber für ein GPS-Gerät haben, haben Sie wahrscheinlich auch eine Userspace-Programmierschnittstelle dafür ... aber haben Sie den nächsten Teil?
  • Anwendungen, die die Userspace-APIs verwenden - Ihre Clientanwendung (vermutlich ein Webbrowser) muss die Userspace-Treiber-API kennen und sie zur Unterstützung von Standortdiensten nutzen können.
  • Die Anwendung muss ein Standortprotokoll unterstützen, das mit der Webanwendung kompatibel ist, die sie abfragt. Der W3C-Standard für die Endpunkt-Geolokalisierung ist die W3C-Geolokalisierungs-API. Dies ist also ein guter Ausgangspunkt. Der Browser muss grundsätzlich verstehen, dass der Browser, wenn der Webserver nach dem Standort fragt, die Anforderung gut genug "versteht", um zu wissen, dass er Geolokalisierungsdaten vom Benutzer abrufen muss.
  • Die Anwendung muss den Treiber als unterstütztes Backend in das Standortprotokoll integrieren .

Sie erhalten also einen Technologie-Stack wie folgt:

Kerneltreiber <--> Userspace-Treiber / -Bibliotheken <--> Geolokalisierungs-Backend für Webbrowser, das für die Userland-Bibliotheken oder das Framework Ihres Geräts spezifisch ist <-> Webbrowser-Protokollschicht, die eine HTTP-basierte Geolokalisierungsanforderungs-API wie die W3C-Geolokalisierungs-API versteht.

Im Moment denke ich, dass die Stücke, die höchstwahrscheinlich bereits verfügbar sind, sind:

  • Die Kerneltreiber und Userspace-Bibliotheken für das Gerät sollten vom Hersteller bereitgestellt werden.
  • Die W3C-Geolocation-API wird in Chrome und Firefox seit langem unterstützt.

Das Teil, das wahrscheinlich fehlt, ist das "Geolocation-Backend des Webbrowsers".

Das heißt, ich bezweifle, dass Firefox / Chrome tatsächlich Hardware-Integrationsunterstützung für GPS-Geräte bietet. Derzeit ist mir nur eine Implementierung bekannt: Firefox unterstützt GPSd- Geräte. Wenn Ihr Gerät in die GPSd-Middleware integriert ist und Ihr Betriebssystem eines der unterstützten ist, ist dies möglich. Andernfalls wahrscheinlich nicht (obwohl dies variieren kann, wenn der Hersteller den gesamten Stack einschließlich eines Browser-Plugins unterstützt).

allquixotic
quelle