Анимация карты для маркера выполняется обязательно, поэтому вам нужно получить ссылку на ваш компонент MapView, например, добавить эту опору в MapView:
<MapView
...
ref={ref => this.map = ref}
>
{data.map(item => <Marker ... />)}
</MapView>
В простейшем случае this
должен ссылаться на компонент, который также отображает ваши маркеры, так что вы можете ссылаться на this.map
в визуализации маркера. Если ваш компонент MapView обернут во что-то еще, вам нужно будет forward ref , чтобы получить ссылку на фактический компонент MapView
Затем вам нужно отслеживать регион, отображаемый в данный момент накарта и ее изменения, когда пользователь перемещает камеру
<MapView
...
onRegionChangeComplete={region => this.setState({ region })}
>
После этого вы можете использовать animateToRegion метода MapView для фокусировки на маркере
// ListMapItem's handleClick prop
handleClick={() => {
// construct new region from marker's lat/lng
// and current region's deltas to keep zoom level
const newRegion = {
latitude: item.position.lat,
longitude: item.position.lng,
latitudeDelta: this.state.region.latitudeDelta,
longitudeDelta: this.state.region.latitudeDelta,
}
// animate camera to that region over 500 ms
this.map.animateToRegion(newRegion, 500)
}}