Кластеризация Mapbox без файла Geo JSON - PullRequest
0 голосов
/ 27 апреля 2020

как я могу кластеризовать маркеры с этим методом? Я хотел сделать группу маркеров в группах с текущим методом.

EasyDB stores = EasyDB.init(getActivity(), "Objects");
        stores.setTableName("Stores");
        Cursor res = stores.getAllData();
while (res.moveToNext()) {
                    String name = res.getString(5);
                    String lat = res.getString(8);
                    String lang = res.getString(9);
                    String desc = res.getString(4);
    mapboxMap.addMarker(new MarkerOptions()
                                        .setIcon(icon)
                                        .position(point)
                                        .setSnippet(snipp)
                                        .title(id));

}

1 Ответ

0 голосов
/ 29 апреля 2020

Учитывая использование 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 Демо-приложение плагинов показывает, как реализовать кластеризацию с аннотациями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...