【发布时间】:2018-02-16 05:58:31
【问题描述】:
您是否在 react native 中做过像 Uber 这样的实时跟踪演示?
我做了一个。它在具有自定义位置的模拟器和模拟器中运行良好,但无法使用 navigator.geolocation 在真实设备中获得正确的位置。
watchID = null;
componentDidMount(){
navigator.geolocation.getCurrentPosition((position) => {
let lat = parseFloat(position.coords.latitude);
let long = parseFloat(position.coords.longitude);
let initialRegion = {
latitude : lat,
longitude : long,
latitudeDelta : LATITUDE_DELTA,
longitudeDelta : LONGITUDE_DELTA
}
this.setState({ initialPosition : initialRegion });
this.setState({ markerPostition : initialRegion });
}, (error) => {
alert(JSON.stringify(error))
});
this.watchID = navigator.geolocation.watchPosition((position) => {
let lat = parseFloat(position.coords.latitude);
let long = parseFloat(position.coords.longitude);
let lastRegion = {
latitude : lat,
longitude : long,
latitudeDelta : LATITUDE_DELTA,
longitudeDelta : LONGITUDE_DELTA
}
this.setState({ initialPosition : lastRegion });
this.setState({ markerPostition : lastRegion });
});
}
componentWillUnmount(){
navigator.geolocation.clearWatch(this.watchID);
}
我已将 enableHighAccuracy 设置为 true,但它抛出错误,所以,我只是将其删除。现在我没有得到设备的正确(准确)位置。
请建议我使用 watchPosition 进行地理定位设置,以防您进行任何相关项目时对您更有效。
如果你在 git repo 中有你的代码,那么我会很感激你的。
如果我犯了任何语法错误,请原谅我。
【问题讨论】:
标签: reactjs react-native geolocation tracking