React 本机查询 GPS 坐标并给出超时

问题描述 投票:0回答:3

我们有下一个问题: 我们正在查询 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
                    }
                );
android gps react-native android-gps
3个回答
1
投票

引自图书馆的 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

也许你应该尝试一下。


0
投票

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 旨在作为您使用的库的直接替代品,因此迁移应该只是更改包的问题。


0
投票

也许可以尝试

 forceLocationManager: true
它解决了我的问题

© www.soinside.com 2019 - 2024. All rights reserved.