React Native 中的地理位置准确性

Posted

技术标签:

【中文标题】React Native 中的地理位置准确性【英文标题】:Geolocation accuracy in React Native 【发布时间】:2017-09-07 12:06:44 【问题描述】:

我想在我的应用中使用两个地理位置观察器。一种是useSignificantChanges,一种是高精度。

“lowres”观察者将始终为我的 Redux 商店提供大致位置,而“highres”观察者将在用户在实时视图中工作时启用。

这里是低分辨率观察器的选项

const options = 
  enableHighAccuracy: false,
  useSignificantChanges: true,
  distanceFilter: 500,
;

还有高清观察者:

const options = 
  enableHighAccuracy: true,
  timeout: 60e3,
  maximumAge: 10e3,
;

我已经尝试过设置,但我看不出输出有什么不同。两个观察者同时发出完全相同的位置。我目前正在使用 ios 模拟器。

问题:

我应该可以有多个观察者,不是吗?否则返回的watchId 有什么意义?

这只是模拟器的问题吗?

我有没有误解或犯错?

编辑,实际问题是: 为什么即使在“重大变化”模式下我也能获得高频率的准确 gps 位置。如果我理解正确,这种模式应该可以节省电池。

谢谢!

【问题讨论】:

您问的问题太多,而且还不清楚哪里出了问题。您当前获得的输出有什么问题?你能指望什么?见How to Ask。 抱歉,已编辑.. 好的,所以你的问题是关于useSignificantChanges 选项。这是相当新的only recently implemented,所以后续问题 - 1)你使用的是什么版本的 React Native?是否支持此功能?根据合并日期,看起来是 v0.47+ 2) 您正在测试什么版本的 iOS。 Github 问题指出这是一项影响 iOS 11 的新功能。您是否在模拟器上使用该版本? 很好,谢谢。我的 RN 升级一直很草率。仍为 0.44。没有考虑回到 0.44 文档。请将您的评论复制到答案中,我会接受。 【参考方案1】:

useSignificantChanges 选项是 fairly new 并且是最近才实现的,因此您需要确保:

    您正在使用支持它的 React Native 版本。根据合并日期,看起来是 v0.47+ 您正在测试可以使用它的 iOS 版本。 Github issue 声明这是一项影响 iOS 11 的新功能,因此我认为您至少需要该版本才能看到任何差异。

【讨论】:

以上是关于React Native 中的地理位置准确性的主要内容,如果未能解决你的问题,请参考以下文章

react native 中的地理位置连续运行

错误回调不适用于 React Native 中的地理位置

React Native 地理定位 API 中的 getCurrentPosition 只运行了 10% 的时间?

无法从 react-native 中的 navigation.geolocation.getCurrentPosition() 返回位置

React-native 地理定位

geolib 在 react-native 状态下尚未准备好地理位置坐标