是否可以使用带有计算机的GPS设备为浏览器提供位置?


8

我有两个GPS设备,一个来自NMEA,一个来自Garmin。我想知道是否可以使用其中任何一个为浏览器提供更准确的位置(Chrome,Firefox)。

我的网络应用程序在集成GPS的平板电脑上运行良好,但笔记本电脑却没有。


1
哪个OS?操作系统将需要支持此API ...
tumchaaditya

为什么要使用GPS设备和笔记本电脑,而您可以使用Wi-Fi轻松获取您的位置,或者您可以访问互联网。那是相当准确的不是吗?
Thu Yein Tun

2
@TitanZack:Wi-Fi地理位置基本上是一种“黑客”,它依赖于许多附近长期运行的无线网络。它在许多环境中无效,例如在您是唯一的无线网络的国家,或者您的PC中没有无线芯片组。一般来说,这只是试图告诉球场你在哪里。WiFi的任何内容都不能直接转换为位置; 这一切都基于实验数据和统计数据。只要您在地球表面,无论您身在何处,GPS都能精确到达仪表。
allquixotic

Answers:


6

为了让它在笔记本电脑上运行,您需要在整个堆栈中获得如下支持:

  • 驱动程序支持 - 笔记本电脑必须具有能够识别GPS设备并与之接口的硬件驱动程序,无论是通过USB还是其他协议。驱动程序通常在内核中实现,但如果你知道你有正确的驱动程序,那么实现对你来说并不重要。
  • 使用驱动程序的用户空间API - 无论驱动程序接口是什么或如何工作,用户空间堆栈必须知道硬件GPS设备的存在,并且必须知道如何通过编程接口访问硬件。如果你有一个GPS设备的驱动程序,那么你可能还有一个用户空间编程接口......但是你有下一部分吗?
  • 使用用户空间API的应用程序 - 您的客户端应用程序(可能是Web浏览器)必须了解用户空间驱动程序API,并能够有效地使用它来支持位置服务。
  • 应用程序必须支持与查询它的Web应用程序兼容的位置协议 - 端点地理定位的W3C标准是W3C Geolocation API,因此这是一个很好的起点。浏览器必须基本上理解当Web服务器请求位置时,浏览器“足够”理解该请求,以便知道它需要从用户获取地理位置数据。
  • 应用程序必须将驱动程序作为受支持的后端集成到位置协议中

所以你最终得到的技术堆栈是这样的:

内核驱动程序< - >用户空间驱动程序/库< - >特定于设备的用户区库或框架的Web浏览器地理定位后端< - >了解基于HTTP的地理定位请求API的Web浏览器协议层,例如W3C Geolocation API。

现在我觉得最有可能的部分是:

  • 设备的内核驱动程序和用户空间库应由制造商提供。
  • 长期以来,Chrome和Firefox都支持W3C Geolocation API。

可能缺少的部分是“Web浏览器地理定位后端”。

也就是说,我怀疑 Firefox / Chrome实际上是否支持GPS设备的硬件集成。目前我只知道一个实现:Firefox支持GPSd设备。因此,如果您的设备与GPSd中间件集成,并且您的操作系统是支持的操作系统之一,那么它是可能的。否则,可能不会(尽管如果制造商决定支持整个堆栈,包括浏览器插件,它可能会有所不同)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.