Mapbox gl: при наведении курсора на слои меняйте стиль указателя курсора - PullRequest
0 голосов
/ 07 апреля 2019

У меня от 10 до 15 различных слоев, например, автомобиль, автобус, маршрут и т. Д. И т. Д. Этот слой я добавляю динамически на карту, когда это необходимо, потому что все слои не существуют на карте.

Итак, я показываю информацию об слоях одним щелчком мыши, но я хочу, чтобы при наведении курсора мыши на слой менялся стиль курсора указателя мыши на «Перекрестие».

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

Первый способ:

 map.on('mouseenter', (e: any) => {
      self.mapInstance.getCanvas().style.cursor = 'crosshair';
    });

Второй путь:

      map.on('mouseenter',(e: any) => {         
       var features = map.queryRenderedFeatures(e.point,{ layers: ['Car',"Bus"] });
//error let's say any layer still on exist on map
        if(features.length)
         map.getCanvas().style.cursor = 'crosshair';    
            });

Мои проблемы :

  1. Стиль курсора не меняется

  2. Ошибка на queryRenderedFeatures, как слой не существует

  3. Мышь на мерцающем слое

Как изменить стиль курсора при наведении мыши на разные слои?

1 Ответ

0 голосов
/ 08 апреля 2019

Как насчет перемещения мыши?

// некоторые отступы, так как для публикации SO требуется минимум 30 символов ...

...