iPhone 7上的React Native地理位置标题始终为-1

时间:2018-08-19 01:26:42

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

我遇到了一个问题,我有几个星期无法解决。

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

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

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
  });

在模拟器上,一切正常。但在实际的iOS设备上,标题始终为-1。 我的项目使用RN 0.54。但是,我刚刚通过react-native init用RN 0.56创建了一个新项目,并且行为是相同的。

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

有帮助吗?

2 个答案:

答案 0 :(得分:1)

由于React Native地理位置是对Web地理位置(see docs)的扩展, 它获得方向(航向)作为最后两个位置之间的差。不能以低速或在用户停留时返回(返回-1)。

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

弹出应用的解决方案:即使用户停留,也可以使用第三方库react-native-heading来获取设备的健康提示。

世博会解决方案:应该不会出现这样的问题,因为世博会使用内置罗盘代替了网络地理位置。

答案 1 :(得分:0)

使用<html> <head> <title>Video Streaming Demonstration</title> </head> <body> <h1>Video Streaming Demonstration</h1> <img src="{{ url_for('video_feed1') }}"> <img src="{{ url_for('video_feed2') }}"> </body> </html> ,我能够获得一个不是-1的航向。

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