嗨,伙计们,我需要一些关于如何在启用用户坐标时获取用户坐标的帮助
关注用户位置
上
地图视图
.有没有办法做到这一点,或者是否有任何可能的替代方案?
我已经做了这样的事情:
import {DeviceEventEmitter} from 'react-native';
import RNALocation from 'react-native-android-location';
import MapView from 'react-native-maps';
componentDidMount() {
DeviceEventEmitter.addListener('updateLocation', function(e: Event) {
console.log(e);
this.setState({lng: e.Longitude, lat: e.Latitude });
}.bind(this));
RNALocation.getLocation();
}
已经使用过 React 原生地理位置 https://facebook.github.io/react-native/docs/geolocation.html但似乎没有任何效果。它只给我用户的初始位置,当用户位置发生变化时,它不会给我一些更新。
我什至使用 setInterval
继续调用 API,以便它可以为我提供有关用户位置的新更新,但坐标仍然没有改变。
使用假GPS来移动我的位置或模拟我的位置......请帮忙,非常感谢。
navigator.geolocation.watchPosition (https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition)
const options = options = {
enableHighAccuracy: false,
timeout: 5000,
maximumAge: 0
};
navigator.geolocation.watchPosition((lastPosition) => {
this.setState({lng: lastPosition.coords.longitude, lat: lastPosition.coords.latitude });
}, (error) => {
console.log('Error', error)
}, options);
无论如何,我都解决了。由于我无法使用移动设备的GPS收听用户位置。我所做的是我使用了来自 React Native geolocation 的代码
navigator.geolocation.getCurrentPosition(
(position) => {
var initialPosition = JSON.stringify(position);
this.setState({initialPosition});
},
(error) => alert(JSON.stringify(error)),
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
);
每 1 秒循环一次,如果坐标发生变化,则更新坐标状态(纬度和经度)。到目前为止,它工作顺利。:)