我正在使用 react-native-mapbox-gl。我有一组位置,我正在循环遍历以在地图上绘制标记。但是有些位置彼此非常接近,几乎看不到。我想对彼此靠近的所有位置进行聚类,这样当我单击它时,它会展开并向我显示该聚类中的所有位置。
mapbox 中有<MapboxGL.ShapeSource />
可用的,但它要求从其中加载 lat long 的 url。但我有一个数组,每个位置都有 lat long。有没有其他方法可以在 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>
渲染位置函数循环遍历位置数组并在地图上显示标记
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>
);
});