热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:ReactNativeGeolocationWatchposition不会实时更新

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ReactNativeGeolocationWatchposition不会实时更新相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了React Native Geolocation Watchposition不会实时更新相关的知识,希望对你有一定的参考价值。



我正在使用navigator.geolocation.getCurrentPosition()navigator.geolocation.watchPosition()来获取手机的当前位置,然后在移动时实时保持该位置以及速度。进行这些调用后,我使用redux来设置当前位置和速度的状态。

当我在genymotion模拟器中测试它时,它在我更改gps坐标时按计划工作。状态随当前位置更新,并且该信息在屏幕上呈现。

但是,当我构建应用程序以在我的手机上进行测试时,它无法按预期工作。当我第一次打开应用程序时,该位置显示正确。当汽车开始行驶时,位置和速度只会经常更新。

在屏幕上,我有当前位置和当前速度,这是从我填充redux的状态中提取数据。这些数字可能每5-10秒更新一次。

我在应用程序上打开了一张地图,显示/更新了我当前的位置(将其坐标从与我上面指出的“当前位置”和“当前速度”相同的状态拉出)。地图上的当前位置显示我几乎实时移动,每半秒左右更新一次。

对于所有文本感到抱歉,但最大的问题是:如果我的地图和屏幕正在从同一状态中提取数据,为什么地图会实时更新,而不是在其他地方更新?我期望的目的是看到当前位置和速度数几乎每秒都在变化。

以下是我的导航地理定位代码供参考:

navigator.geolocation.getCurrentPosition()

navigator.geolocation.getCurrentPosition((position) => {
const lat = parseFloat(position.coords.latitude);
const lOng= parseFloat(position.coords.longitude);
const initialRegion = {
latitude: lat,
longitude: long,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
};
this.props.setCurrentPosition(initialRegion);
},
error => console.log('getCurrentPosition error', JSON.stringify(error)),
{ enableHighAccuracy: true, maximumAge: 0 }
);

navigator.geolocation.watchPosition()

this.watchId = navigator.geolocation.watchPosition(position => {
console.log('watchposition: ', position);
const lat = parseFloat(position.coords.latitude);
const lOng= parseFloat(position.coords.longitude);
const lastRegion = {
latitude: lat,
longitude: long,
longitudeDelta: LONGITUDE_DELTA,
latitudeDelta: LATITUDE_DELTA
};
// convert speed from m/s to mph
const speed = position.coords.speed * 2.23694;
this.props.setCurrentPosition(lastRegion);
this.props.setCurrentSpeed(speed);
},
error => console.log('watchposition error', error),
{ enableHighAccuracy: true, maximumAge: 0 }
);

答案

我无法让watchPosition()始终如一地工作,但最终设置了一个计时器来每隔几秒运行一次getCurrentPosition(),这对我的应用程序来说也是如此。



推荐阅读
author-avatar
城哥_1986
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有