У меня есть один MapView и один маркер.Я асинхронно запрашиваю текущую позицию пользователя и устанавливаю регион p на карту.Каждые 10 секунд я обновляю позицию маркета.Это делает регион для сброса в положение р.Чтобы избежать этого, я реализовал onRigionChange, чтобы при обновлении состояния рынка последний регион сохранялся.Это работает, но делает навигацию на карте очень глючной.Прокрутка и изменение региона на карте не работают должным образом.Может ли случиться так, что существует мертвая блокировка, вызванная обменом регионами и поддержкой региона?У вас есть идея, как решить проблему?
componentDidMount() {
this._getLocationAsync();
}
_getLocationAsync = async () => {
let { status } = await Permissions.askAsync(Permissions.LOCATION);
if (status !== 'granted') {
this.setState({
errorMessage: 'Permission to access location was denied',
});
}
let location = await Location.getCurrentPositionAsync({});
this.setState({ location });
this.setState({
region: {
latitude: location.coords.latitude,
longitude: location.coords.longitude,
latitudeDelta: 0.003,
longitudeDelta: 0.003,
},
});
}
state = {
location: null,
region:null,
errorMessage: null,
marker: {latitude: 0,longitude: 0},
};
<MapView style={styles.map}
showsUserLocation = {true}
onRegionChange={this.onRegionChange.bind(this)}
region={this.state.region} >
<MapView.Marker
coordinate={this.state.marker}
title={"title"}
description={"description"}/>
</MapView>