React native запрашивает координаты GPS и дает тайм-аут - PullRequest
1 голос
/ 18 июня 2020

У нас есть следующая проблема: мы проверяем местоположение GPS, чтобы получить список, который содержит только те, которые находятся близко в радиусе, но при обращении к GPS он дает нам тайм-аут после не менее 40 секунд ожидания. Проблема особенно возникает в Android с Xiaomi Redmi 8 в промышленных средах, с меньшим количеством подключений, чем обычно, или в движении, у них нет доступа к LTE все время. Мы используем библиотеку @ react-native-community / geolocation или navigation.position. Можете ли вы помочь нам с какой-либо другой библиотекой или стратегией для получения положения GPS, которое не состоит в том, что GPS постоянно меняет свое положение? что-то вроде получения на фоне ..

Код

Geolocation.getCurrentPosition(
                    position => {
                        // process the position
                    },
                    error => {
                        console.log(error);
                    }, {
                        timeout: 40000,
                        maximumAge: 0
                    }
                );

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Как указано на странице библиотеки github :

В настоящее время, на Android, здесь используется android .location API. Этот API не рекомендуется Google, поскольку он менее точен и медленнее, чем рекомендованный API служб геолокации Google. Это то, что мы хотим изменить в ближайшем будущем. https://github.com/react-native-community/react-native-geolocation/issues/6.

В файле readme также есть несколько библиотечных предложений, которые фактически используют Google Location Services API. Я использовал response-native-location , но этот пакет больше не поддерживается активно, поэтому я переключился на response-native-geolocation-service , который имеет очень похожий API к тому, что вы уже используете, а именно к getCurrentPosition.

Возможно, вам стоит попробовать.

0 голосов
/ 18 июня 2020

response-native-community / geolocation не использует более точный API служб геолокации Google, как указано в readme

Рекомендуемая библиотека для определения местоположения GPS (и та, которую я использовал) для RN ​​Android это react-native-geolocation-service . В Readme также упоминается timeout issue, что заставляет меня задаться вопросом, совпадает ли он с вашим:

Эта библиотека создана в попытке исправить проблему тайм-аута местоположения на android с помощью response- текущая реализация Geolocation API в native. Эта библиотека пытается решить проблему с помощью нового API FusedLocationProviderClient службы Google Play, который Google настоятельно рекомендует использовать вместо API определения местоположения по умолчанию для android. Он автоматически решает, какого поставщика использовать на основе конфигурации вашего запроса, а также предлагает вам изменить режим местоположения, если он не удовлетворяет вашей текущей конфигурации запроса.

Так что, если бы я был вами, я бы дал его а go. API предназначен для замены используемой вами библиотеки, поэтому миграция должна сводиться только к смене пакетов.

...