Если я вас правильно понял, то вы ищете предложение, как переместить маркер в новое положение.
Я предполагаю, что он правильно отображается во время первого рендеринга. Если я прав, то приведенное ниже предложение должно работать для вас, потому что мы используем этот код для той же цели.
// When updating region
const coordinate = new MapView.AnimatedRegion({
latitude: newRegion.latitude,
longitude: newRegion.longitude,
latitudeDelta: 0,
longitudeDelta: 0,
});
this.setState({ region: newRegion, coordinate }, () => {
if (!!this._markerRef) {
coordinate.timing({
latitude,
longitude,
duration: MARKER_ANIMATION_DURATION,
}).start();
}
})
// rendering MapView
<MapView
style={[styles.map, { marginTop: this.state.marginTop }]}
initialRegion={this.state.region}
showsUserLocation={true}
followsUserLocation={true}
onMapReady={this.onMapReady}
onRegionChangeComplete={this.onRegionChange}
>
<MapView.Marker.Animated
ref={ref => {this._markerRef = ref;}}
coordinate={this.state.coordinate}
title="Your location"
draggable
/>
</MapView>;
Надеюсь, это поможет!