Ошибка обработки событий Click и RightClick для CanvasLayer.Point географической карты

Добрый день!
Похоже нашли баг… Не обрабатываются клики по геолокации (красный флажок) на карте.
geomap

@Inject
private GeoMap map;

Привожу код метода перестроения карты. Принты в обработчике кликов не попадают в catalina.out

 private void reloadMap() {
        if (startDate.getValue() == null) return;
        var locations = detachmentService.getGeoLocations(startDate.getValue(), commonFilter.getDepartment());
        CanvasLayer canvasLayer = map.getCanvas();
        canvasLayer.clear();
        GeometryFactory factory = new GeometryFactory();
        for (var location : locations) {
            var contentBuilder = new StringBuilder();
            var items = (List<KeyValueEntity>) location.getValue("items");
            contentBuilder.append("<table>");
            contentBuilder.append("... некоторое наполнение таблицы ...");
            contentBuilder.append("</table>");
            CoordinateArraySequence coordinates = new CoordinateArraySequence(1);
            coordinates.setOrdinate(0, 0, location.getValue("location_y"));
            coordinates.setOrdinate(0, 1, location.getValue("location_x"));
            final Point point = new Point(coordinates, factory);

            CanvasLayer.Point mapLocation = canvasLayer.addPoint(point);
            mapLocation.setStyle(new PointStyle(
                    new FontPointIcon(CubaIcon.FLAG)
                            .setIconPathFillColor("#ff0000")
                            .setIconTextFillColor("white")
                            .setIconPathStrokeColor("black")))
                            .setPopupContent(contentBuilder.toString());

            // клик по локации
            mapLocation.addClickListener(event -> {
                System.out.println("addClickListener");
            });

            mapLocation.addRightClickListener(event -> {
                System.out.println("addRightClickListener");
            });
        }

Добрый день, Андрей!

Дело в том, что слой публикует click-эвенты только если слой помечен, как selected на карте.
В Вашем случае, нужно выбрать Canvas.

Это можно сделать как программно:
map.selectLayerById("canvas")
так и в XML-дескрипторе:

        <maps:geoMap id="map">
            <maps:layers selectedLayer="canvas">
                ...
            </maps:layers>
        </maps:geoMap>

Пожалуй, учитывая неочевидность этого момента, было бы удобнее автоматически переводить слой в selected-режим при клике на объект слоя. Данная опция будет добавлена в следующем релизе.

Также, в процессе изучения Вашего вопроса обнаружилась другая проблема: при клике правой кнопкой на точку Canvas-а, публикуется 2 события: ClickEvent и RightClickEvent. Эта проблема также будет исправлена в ближайшем релизе.

2 симпатии

Глеб, спасибо! Ваше решение помогло.