按属性过滤特征,这是Mapbox中的对象列表

问题描述 投票:1回答:1

我正在我的mapbox-gl-js地图中进行过滤。我有一个功能与此相似:

[
    {
        "latitude": 1.0,
        "longitude": 1.0,
        "name": null,
        "description": null,
        "id": 3,
        "mappings": [
            {
                "type": "A",
                "mode": [
                    "1",
                    "2",
                    "3"
                ]
            },
            {
                "type": "B",
                "mode": [
                    "2",
                    "1",
                    "5"
                ]
            }
        ]
    }
]

现在,我想创建一个过滤器,该过滤器仅显示类型= A AND模式= 1的功能。这样的复杂过滤是否可行?我在这样的表情上挣扎:

this.map.setFilter('points2', ['==', ['get', 'type', ['object', ['get', 'mappings']]], 'A']));

但是似乎没有意义。

我还尝试从后端处理数据,并根据geoJson创建了它:

[
    {
        "latitude": 1.0,
        "longitude": 1.0,
        "name": null,
        "description": null,
        "id": 3,
        "mappings": {
            "A": [
                "1",
                "2",
                "3"
            ],
            "B": [
                "3",
                "2",
                "1"
            ]
        }
    }
]

它看起来比以前的json容易一些,但我无法编写适当的过滤器,因为据我所知,文档甚至都没有说出这种情况。我也向这个问题添加了Leafletjs标记,因为也许在传单库中有一个很好的解决方案。

欢呼声

leaflet mapbox mapbox-gl-js mapbox-gl
1个回答
0
投票

[Mapbox创建者之一回答了我的问题:https://github.com/mapbox/mapbox-gl-js/issues/8963

© www.soinside.com 2019 - 2024. All rights reserved.