I am working with react-native-mapbox-gl. I have an array of locations which I am looping through to draw markers on the map. But there are some locations which are very closer to each other and are nearly not visible. I want to cluster all the locations which are near to each other so that when I click on it, it expands and show me all the locations which are into that cluster.
There is <MapboxGL.ShapeSource />
available in mapbox but it asks for a url in which lat long are to be loaded from. But I have an array with lat long of each location. Is there any other way I can make a cluster of locations in mapbox.
<Mapbox.MapView
styleURL={Mapbox.StyleURL.Dark}
zoomLevel={15}
centerCoordinate={[locations[0].longitude, locations[0].latitude]}
style={styles.container}
showUserLocation={true}>
{this.renderLocations(locations)}
</Mapbox.MapView>
render location function loops through the location array and shows markers on the map
renderLocations(locations) {
return locations.map((loc, locIndex) => {
return (
<Mapbox.PointAnnotation
key={`${locIndex}pointAnnotation`}
id={`${locIndex}pointAnnotation`}
coordinate={[loc.longitude, loc.latitude]}
title={loc.name}>
<Image source={require("../../../assets/images/marker.png")}/>
<Mapbox.Callout title={loc.name} />
</Mapbox.PointAnnotation>
);
});