Учитывая использование MarkerOptions
здесь, похоже, что вы используете плагин Mapbox Annotations для Android. Если это так, вам нужно будет создать Geo JSON объект из маркеров в вашей базе данных, чтобы вы могли использовать объект GeoJsonOptions
для передачи в SymbolManager
экземпляр для включения кластеризации. Например, если вы анализируете ваши данные для объекта Geo JSON и сохраняете их в переменной geoJsonData
:
GeoJsonOptions geoJsonOptions = new GeoJsonOptions()
.withCluster(true)
.withClusterMaxZoom(14)
.withClusterRadius(10);
symbolManager = new SymbolManager(mapView, mapboxMap, style, null, geoJsonOptions);
symbolManager.setIconAllowOverlap(true);
List<SymbolOptions> options = new ArrayList<>();
for (int i = 0; i < geoJsonData.length(); i++) {
Feature feature = features.get(i);
options.add(new SymbolOptions()
.withGeometry((Point) feature.geometry())
.withIconImage("name-of-icon-to-use-for-clusters")
);
}
Этот пример из Mapbox Android Демо-приложение плагинов показывает, как реализовать кластеризацию с аннотациями.