我正在创建一个本机应用程序,它内置了用于获取经度和纬度坐标的方法。我正在使用Android。
即使我使用的是setInterval,我也不是随机工作的。有时它只在我四处走动时才会响应,有时它会在我不动的时候正确更新。
import React, { Component } from 'react';
import { View, Text } from 'react-native';
class Geolocation extends Component {
constructor(props) {
super(props);
this.state = {
latitude: null,
longitude: null,
error: null
};
setInterval(this.location.bind(this),3000)
}
location(){
this.watchId = navigator.geolocation.getCurrentPosition(
(position) => {
let obj = {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
error: null
}
this.setState(obj);
},
(error) => this.setState({ error: error.message }),
{ enableHighAccuracy: true, timeout: 200000, maximumAge: 1000},
);
}
componentDidMount() {
this.location()
}
componentWillUnmount() {
navigator.geolocation.clearWatch(this.watchId);
}
render() {
return (
<View style={{ position: 'relative', top: 70, flexGrow: 1,
alignItems: 'center', justifyContent: 'center' }}>
<Text>Latitude: {this.state.latitude}</Text>
<Text>Longitude: {this.state.longitude}</Text>
{this.state.error ? <Text>Error: {this.state.error}</Text> : null}
</View>
);
}
}
export default Geolocation;
我的问题再次是位置没有正确更新,我已尝试过wifi和我的手机4g数据并且没有变化。
如何定期更新位置坐标?
非常感谢任何帮助!