Documentación / Extensiones / Agrupación de marcadores

Colocar muchos marcadores

Agrupa automáticamente los marcadores cercanos en clústeres y los expande al hacer zoom. Funciona con el mismo código en las vistas de mapas de cualquier proveedor.

ANDROID
com.mapconductor:marker-clustering
iOS
MapConductorMarkerCluster
REACT
@mapconductor/react-marker-clustering
Plataforma

01 · Instalación

app/build.gradle.kts
implementation("com.mapconductor:marker-clustering")

02 · Uso

Simplemente pase una matriz de marcadores a un grupo de clústeres. Los objetos de estado de los marcadores son los mismos que los habituales, no es necesario modificarlos.

ClusteredMap.kt · Jetpack Compose
val markerStates: List<MarkerState> = remember { buildMarkerList() }
val clusterState = remember {
    MarkerClusterGroupState(
        clusterRadiusPx = 90.0,
        minClusterSize = 5,
        onClusterClick = { cluster -> /* handle tap */ },
    )
}

MapLibreMapView(state = mapState) {
    MarkerClusterGroup(state = clusterState, markers = markerStates)
}

03 · Opciones principales

Option
Default
Descripción
clusterRadiusPx
90.0
Distancia para agrupar en clústeres (píxeles de pantalla). Si se reduce, la división será más detallada.
minClusterSize
3
Número mínimo de marcadores para mostrarlos como clúster. Por debajo de esto, se mantienen como marcadores individuales.
clusterIconProvider
circle badge
Devuelve un icono según el número de clústeres. El valor predeterminado es una insignia circular.
onClusterClick
null
Recibe toques en los clústeres. Por lo general, se usa para hacer zoom.
enableZoomAnimation
false
Activar/Desactivar la animación de expandir/agrupar al hacer zoom. De forma predeterminada está desactivada. Ajuste la duración con zoomAnimationDurationMs (predeterminado 300 ms).

04 · Rendimiento

Incluso con varios miles, fluido

La agrupación se calcula en segundo plano y solo se reestructura cuando la cámara se detiene.

SAMPLE
24,526

Páginas relacionadas