Mapbox GL 菜单(图层切换器)不响应第一次点击

Mapbox GL Menu (Layer Switcher) Doesn't Respond to First Click

我正在构建一个 mapbox gl 工具,显示带有弹出工具提示的多层 geojson 标记。我的问题是菜单或层切换器对用户第一次单击每个菜单项没有反应。只有在第二次点击后它才会起作用,打开和关闭图层。

在我的开发站点上查看问题 here

任何和所有正确方向的帮助或要点都会受到欢迎。非常感谢!

问题在于您如何检查图层的 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"
        },
    });

这里是 related mapbox-gl example.