Меню Mapbox GL (переключатель слоев) не реагирует на первый щелчок

Я создаю инструмент gl mapbox, показывающий несколько слоев маркеров geojson с всплывающими подсказками. Моя проблема заключается в том, что переключатель меню или слоя не реагирует на первый щелчок пользователя по каждому из пунктов меню. Только после второго щелчка он начинает работать, включая и выключая слои.

См. проблему на моем сайте разработки здесь.

Любая помощь или точки в правильном направлении приветствуются. Огромное спасибо!


person Clay Kilby    schedule 12.10.2016    source источник


Ответы (1)


Проблема заключается в том, как вы проверяете свойство visibility слоя. При первом щелчке свойство visibility равно undefined:

введите описание изображения здесь

Чтобы исправить это, вы можете явно определить начальные visibility для слоев:

    map.addLayer({
        "id": "Colleges with campus programs",
        "type": "symbol",
        "source": "Colleges with prison programs",
        "layout": {
            "visibility": "visible", // <======= add default visibility
            "icon-image": "college-marker",
            "icon-size": 0.5,
            "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
            "text-offset": [0, 0.6],
            "text-anchor": "top"
        },
    });

Вот пример, связанный с mapbox-gl.

person kmandov    schedule 13.10.2016
comment
Красивый! Это сработало как шарм. Не могу поверить, что я пропустил это в примере. Огромное спасибо!. - person Clay Kilby; 13.10.2016