React Native 查询 GPS 坐标并给出超时
Posted
技术标签:
【中文标题】React Native 查询 GPS 坐标并给出超时【英文标题】:React native queries GPS coordinates and gives timeout 【发布时间】:2020-10-08 16:04:21 【问题描述】:我们有下一个问题: 我们正在查询 gps 位置以获得仅包含半径范围内的列表的列表,但是在查询 GPS 时,它会在至少等待 40 秒后让我们超时。 在工业环境中使用小米红米 8 的 android 尤其会出现这个问题,连接比平时少或在移动中,他们无法始终访问 LTE。 我们使用库@react-native-community/geolocation 或 navigation.position 您能否帮助我们使用任何其他库或策略来获取不包含在 GPS 中始终改变其位置的 GPS 位置?就像把它放在后台一样..
代码
Geolocation.getCurrentPosition(
position =>
// process the position
,
error =>
console.log(error);
,
timeout: 40000,
maximumAge: 0
);
【问题讨论】:
【参考方案1】:引用自图书馆的github 页面:
目前,在 Android 上,它使用 android.location API。 Google 不推荐使用此 API,因为它不如推荐的 Google Location Services API 准确且速度较慢。这是我们希望在不久的将来改变的东西https://github.com/react-native-community/react-native-geolocation/issues/6。
自述文件中还有一些库建议,它们实际上使用了 Google 位置服务 API。我使用了react-native-location,但是这个包不再被积极维护,所以我切换到react-native-geolocation-service,它有一个与你已经在使用的非常相似的API,更具体地说是getCurrentPosition
。
也许你应该试一试。
【讨论】:
【参考方案2】:react-native-community/geolocation 不使用更准确的 Google 位置服务 API,如 readme 中所述
推荐的用于 RN Android 的 GPS 定位库(也是我使用的那个)是 react-native-geolocation-service。它的自述文件还提到了timeout issue
,这让我想知道它是否和你的一样:
创建此库是为了修复位置超时 android上的问题与react-native的当前实现 地理位置 API。这个库试图通过使用谷歌来解决这个问题 Play Service 的新 FusedLocationProviderClient API,Google 强烈推荐超过 android 的默认框架位置 API。它 根据您的请求自动决定使用哪个提供商 配置,如果它还提示您更改位置模式 不满足您当前的请求配置。
所以如果我是你,我会试一试。该 API 旨在替代您使用的库,因此迁移应该只是更改包的问题。
【讨论】:
以上是关于React Native 查询 GPS 坐标并给出超时的主要内容,如果未能解决你的问题,请参考以下文章