В React Native, использующем expo-location, показатель refres местоположения gps sh слишком низкий в iOS - PullRequest
3 голосов
/ 20 марта 2020

Я сделал приложение, используя expo-cli, но я получаю противоречивые результаты на ios и android, особенно в этой части кода, где я использую рекуррентный код каждый раз, когда получаю позицию GPS с телефона, особенно скорость.

import * as Location from 'expo-location';
import React from 'react';

class HomeScreen extends React.Component {

  componentDidMount(){
    let watchID = Location.watchPositionAsync(
      {accuracy: 6, timeInterval: 500},
      (position) => {
        // my recurrent code
      }
    );
  }

}

Несмотря на то, что я настраиваю его на восстановление скорости каждые 0,5 секунды, телефоны android получают ее достаточно разумно, раз в секунду или две, но устройства iOS не играть так приятно, иногда ожидая обновления до 30 секунд и, например, скорость скачка +30 миль / ч от одного измерения к следующему.

Есть ли способ увеличить отношение GPS refre sh в iOS? Может быть, это задокументированная проблема, которую я не выяснил?

"expo": "36.0.0" "expo-location": "~ 8.0.0" "реаги": "16.13.1"

1 Ответ

1 голос
/ 24 марта 2020

Само-ответ: В конце концов, это была ошибка, которая все еще сохраняется в той или иной форме внутри expo-location: необходимо установить параметр distanceInterval в массиве опций функции Location.watchPositionAsyn c ():

let watchID = Location.watchPositionAsync(
      { accuracy: 6, timeInterval: 500, distanceInterval: 0 },
      (position) => {
        // my recurrent code
      }
    );
...