我遇到了一个问题,我有几个星期无法解决。
任务:我注意观察设备的位置及其方向。
解决方案:我使用文档中所述的方法
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可能存在一些问题
有帮助吗?
答案 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