【问题标题】:React Native geolocation heading is always -1 on iPhone 7在 iPhone 7 上 React Native 地理定位标题始终为 -1
【发布时间】:2018-08-19 01:26:42
【问题描述】:

我面临一个几周都无法解决的问题。

任务:我注意观察设备的位置和方向。

解决方案:我使用文档中描述的方法

this.watcher = navigator.geolocation.watchPosition((position) => {
    const latitude = position.coords.latitude;
    const longitude = position.coords.longitude;
    const heading = position.coords.heading;

    this.setState({
      latitude: latitude,
      longitude: longitude,
      heading: heading
    });
  },
  (error) => {
     console.log(`error: ${error}`);
  }, 
  {
    enableHighAccuracy: true,
    timeout: 10000,
    maximumAge: 0
  });

Eevrything 在模拟器上运行良好。但在真正的 iOS 设备上,标题始终为 -1。 我的项目使用 RN 0.54。但是,我刚刚通过react-native init 创建了具有 RN 0.56 的新项目,并且行为是相同的。

问题是在 react-native-maps 包中,用户方向以完美的方式呈现,所以我认为 React Native 可能存在一些问题

有什么帮助吗?

【问题讨论】:

    标签: react-native geolocation react-native-ios


    【解决方案1】:

    由于 React Native 地理定位是网络地理定位 (see docs) 的扩展, 它将方向(标题)作为最后两个位置之间的差异。在低速或用户停留时不工作(返回-1)。

    这很奇怪,因为我希望 RN 从内置的“指南针”中获取设备航向。

    弹出应用的解决方案:使用第三方库react-native-heading,即使在用户停留时也能获得设备加热。

    世博会解决方案:应该没有这样的问题,因为世博会使用内置指南针而不是网络地理定位。

    【讨论】:

      【解决方案2】:

      使用 Location.getHeadingAsync() 我能够得到一个不为 -1 的航向。

      查看此链接以了解我正在使用的 expo 方法: https://docs.expo.io/versions/latest/sdk/location#expolocationgetheadingasync-215

      【讨论】:

      • 我不使用expo,我开发弹出的rn app
      猜你喜欢
      • 2023-03-20
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 2021-12-29
      • 2016-10-26
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      相关资源
      最近更新 更多