setFeatureState не обновляет значение в Mapbox - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь изменить цвет маркера, представляющего собой круг, который рисуется с использованием свойства рисования на слое.

После этого урока:
https://docs.mapbox.com/mapbox-gl-js/example/hover-styles/

Я установил circle-color в зависимости от feature-state:

          map.addLayer({
        id: "singles",
        type: "circle",
        source: "users",
        filter: ["!has", "point_count"],
        paint: {
            'circle-radius': {
                'base': 10,
                'stops': [[5, 20], [15, 500]]
            },
            'circle-color':  ["case",
            ["boolean", ["feature-state", "hover"], false],
            '#ddffc8',
            '#ff0000'
            ],
          }
      });

Затем, когда кто-то наводит курсор на боковую панель, я хочу обновить состояние объекта и изменить цвет:

function highlightMarkersOnHoverOnSidebar (markers, map) {
  let marks = markers
  Array.from(document.querySelectorAll('.sideBarItems')).map( (x, i) => {

    x.addEventListener('mouseenter', function(){

      map.setFeatureState({source: 'users', id: marks.features[i].properties.id}, { hover: true});
    }, false)

    x.addEventListener('mouseleave', function(){
      map.setFeatureState({source: 'users', id: marks.features[i].properties.id}, { hover: false});

    }, false)
  })
}

Однако ничего не происходит, когда я наводю элемент боковой панели ... и он даже не выдает ошибку.

Чего-то мне не хватает?спасибо.

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