Данные по клику на метку, которая входит в кластеризованную коллекцию

Рейтинг: 0Ответов: 1Опубликовано: 12.01.2023

Создана кластеризованная коллекция из множества меток:

        ClusterizedPlacemarkCollection clusterizedCollection =
            mapView.getMap().getMapObjects().addClusterizedPlacemarkCollection(this);
        Bitmap image = ImageProvider.fromResource(this, R.drawable.location).getImage();
        ImageProvider imageProvider = 
            ImageProvider.fromBitmap(Bitmap.createScaledBitmap(image, 70, 200, false));
        clusterizedCollection.addPlacemarks(points, imageProvider, new IconStyle());
        clusterizedCollection.clusterPlacemarks(60, 13);

Метки получены из json и перебраны по одной, чтобы получить их координаты, записать в список points и добавить в коллекцию. Возникла такая проблема: кроме координат у меток есть ещё данные, которые нужно выводить для каждой отдельной метки по клику на неё.

До использования коллекции это было реализовано так: создать метку, присвоить метке данные с помощью setUserData(), по тапу на метку срабатывал слушатель и через метод onMapObjectTap и применение к выбранному объекту (метке) getUserData() данные можно было получить.

Теперь же в коллекцию эти данные вообще не идут, то есть у меток есть только координаты и картинка.

Вопросы:

  1. Как добавить в коллекцию не только координаты, но и другие данные о метке?
  2. Как сделать так, чтобы нажатие на метку снова обрабатывалось?

Ответы

▲ 1Принят

Решение оказалось очень простым.

Метки создаются и добавляются в коллекцию по одной таким образом:

PlacemarkMapObject placemark = clusterizedCollection.addEmptyPlacemark(point);

После этого к метке можно обращаться и делать с ней что нужно: устанавливать иконку, данные, навешивать слушатель и так далее.