如何使用 JavaScript 获取设备的最准确 GPS 坐标?

Posted

技术标签:

【中文标题】如何使用 JavaScript 获取设备的最准确 GPS 坐标?【英文标题】:How do I get the most accurate GPS coordinates of my device using JavaScript? 【发布时间】:2020-09-20 19:05:44 【问题描述】:

我想使用 javascript 获取设备最准确的 GPS 坐标。我尝试过四处搜索,但找不到足够准确的解决方案。我曾尝试使用 html5 Geolocation API,但它给了我错误的值。数值相差约 10KM。

我认为它正在返回我的 wifi 提供商服务器或其他东西的坐标。我想要它做的是返回我设备的坐标。我认为这只能使用设备的 GPS 准确实现。

我还没有找到让地理定位 API 在其定位中明确使用 GPS 的方法。我已经读过,它优先考虑移动设备上的 GPS 方法,但我还没有尝试过。无论如何,我想要一种始终使用 GPS 方法进行定位的方法,即使在我的笔记本电脑和平板电脑上也是如此。我正在开发的应用依赖于高定位精度。

如果无法让 Geolocation API 显式使用 GPS 方法返回我的设备坐标,我可以使用其他准确的方法吗?请帮忙!

注意:我已经尝试过提供 enablesHighAccuracy: true 选项。

【问题讨论】:

【参考方案1】:

我曾尝试使用 HTML5 Geolocation API,但它给了我错误的值。数值相差约 10KM。

Geolocation API 将为您提供设备提供的最高精度。如果没有看到您的代码,就不可能告诉您问题所在。我能建议的只是确保您使用watchPosition(),以便为底层 GPS 提供修复时间。 (当然,enableHighAccuracy 你说你已经在做。)

我还没有找到让地理定位 API 在其定位中明确使用 GPS 的方法。

这是不可能的。

无论如何,我想要一种始终使用 GPS 方法进行定位的方法,即使在我的笔记本电脑和平板电脑上也是如此。

我不知道有任何桌面浏览器使用 GPS 定位。

如果无法让 Geolocation API 显式使用 GPS 方法返回我设备的坐标,我可以使用其他准确的方法吗?

我想您总是可以编写一个浏览器扩展程序来执行一些本机代码并获取原始数据。您可能也会对即将推出的 Serial Port API 感兴趣。

【讨论】:

我不完全明白。您说没有使用 GPS 定位的浏览器。因此,当我使用watchPosition 来提供底层 GPS 时间时,究竟会解决什么问题?我只是想理解。您能否提供指向串行端口 API 文档或其他内容的链接。你认为它有什么帮助?这是我第一次听说这个。 @Cacious7 如果浏览器支持,浏览器可以使用 GPS,但您无法选择底层位置提供程序。如果您尝试在桌面上获取位置,那么观看该位置不太可能对您有所帮助……但观看该位置将对您在移动设备上有所帮助。如果您的桌面有一个使用串行端口的外部 GPS/GNSS 单元,串行 API 可能会有所帮助。 codelabs.developers.google.com/codelabs/web-serial/#2

以上是关于如何使用 JavaScript 获取设备的最准确 GPS 坐标?的主要内容,如果未能解决你的问题,请参考以下文章

获取托管设备的 JavaScript 地理位置

如何在javascript中获取准确的原始域地址

使用 Python 获取设备的物理位置?

获取android设备位置的最可靠方法是啥?

JavaScript获取的位置是不是比IP地址获取的位置更准确?

如何获得两个地理点坐标之间的最短行驶路径和距离?