cordova 离子Android位置有时不准确

eeq64g8w  于 2022-11-15  发布在  Android
关注(0)|答案(1)|浏览(174)

我们在 cordova 使用插件“cordova-plugin-locationservices”有时我们得到的位置,几公里远的真实的位置。我们调用“getCurrentPosition”与下一个选项:
{超时:60000,启用高精度:false,最大年龄:0、}
有人在这个插件中使用,并在另一个选项中使用或建议在另一个插件上。首先,我们使用“cordova插件地理位置”与相同的选项,但它有时也返回不准确的位置。

6za6bjd0

6za6bjd01#

我在https://breautek.com/articles/geolocation-accuracy.html上就这个主题写了大量文章
但总结一下,有很多原因导致你没有得到你所追求的准确性。
导致读数不准确的两个主要因素是1)设置和2)环境。
GPS服务本身以两种模式运行:精确定位和粗略定位。精确定位的精度最高可达3-5米,通常用于需要特定街道等信息的情况。粗略定位的精度很低阅读只能用于确定用户所在州或国家/地区的位置。
设置既包括编程设置(如enableHighAccuracy参数),也包括用户设备设置(可由用户根据自己的位置首选项进行配置)。
显然,开发者可以控制程序设置,而你似乎也在这么做。但是,开发者没有权限更改设备的用户偏好。用户同意你的应用使用位置,并不意味着他们实际上启用了位置服务。或者甚至配置为提供精细的位置。具体的设置可以因设备而异,也可以因操作系统版本而异。但一般来说,它们通常有某种“仅限设备/GPS”,和“高精度”(有时被标记为“蓝牙/Wifi/移动的”)设置进行地理定位。处理这些情况是应用程序的责任。
在我的应用程序中,我混合使用了cordova-plugin-geolocation和第三方diagnostics插件。通过诊断插件,你可以检查是否授予了权限,包括精细/精确定位,以及是否确实启用了定位服务。
最后,第二个问题可能是环境问题。即使设备经过配置,应用程序也允许使用精确定位,但实际上您仍可能无法接收到准确的读数。这可能纯粹是由环境造成的。例如,位于混凝土办公楼中会阻碍很多GPS功能。
建议您注意GPS回调中的accuracy字段,它将告诉您GPS服务对给定GPS点准确性的信心程度。精度阅读以米为单位,它告诉您真实位置在给定位置的X米半径范围内。换句话说,数字越小越好。

相关问题