Ответ 1
Вы можете использовать mapbox/supercluster
repo, а здесь gist показывает, как реализовать сверхскопление для React Native. Сначала он разрабатывался для приложений browser/ node, но вы все равно можете просто npm install
и использовать его (javascript - это javascript везде). Добавьте кластеризованные маркеры в свой MapView (первоначально общий здесь):
<MapView ref={ref => { this.map = ref; }}>
{ this.state.markers.map((marker, index) => {
return (
<MapView.Marker
coordinate={{ latitude: marker.geometry.coordinates[1], longitude: marker.geometry.coordinates[0] }}
onPress={() => this.markerPressed(marker)}>
<Marker model={place} active={this.isSelected(place)} />
</MapView.Marker>
);
})}
</MapView>
Предупреждение из issue react-native-maps
:
Основная проблема - производительность, если вам нужно отображать сотни или тысячи маркеров, которые вам нужно будет оптимизировать из этого, и именно там он становится очень тяжелым.