我们有下一个问题: 我们正在查询 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
}
);
引自图书馆的 github 页面:
目前,在 Android 上,这使用 android.location API。 Google 不推荐此 API,因为它比推荐的 Google 位置服务 API 准确度较低且速度较慢。这是我们希望在不久的将来改变的事情https://github.com/react-native-community/react-native-geolocation/issues/6.
自述文件中还有一些库建议,实际上使用了 Google 位置服务 API。我使用过 react-native-location,但这个包不再被积极维护,所以我切换到 react-native-geolocation-service,它的 API 与你已经使用的非常相似,更具体地说是
getCurrentPosition
。
也许你应该尝试一下。
react-native-community/geolocation 不使用更准确的 Google 位置服务 API,如 readme
中所述推荐的 RN Android GPS 定位库(也是我使用的库)是 react-native-geolocation-service。它的自述文件还提到了一个
timeout issue
,这让我想知道它是否与你的相同:
创建此库是为了尝试修复位置超时 android 上的问题与react-native当前的实现 地理定位 API。该库尝试使用 Google 来解决该问题 Play Service 的新 FusedLocationProviderClient API,Google 强烈推荐使用 android 的默认框架位置 API。它 根据您的请求自动决定使用哪个提供商 配置,还会提示您更改定位模式(如果是) 不满足您当前的请求配置。
所以,如果我是你,我就会尝试一下。该 API 旨在作为您使用的库的直接替代品,因此迁移应该只是更改包的问题。
也许可以尝试
forceLocationManager: true
它解决了我的问题