按 属性 过滤要素,这是 Mapbox 中的对象列表
Filter features by property which is a list of objects in Mapbox
我正在我的 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 标签,因为也许在传单库中有一个很好的解决方案。
干杯
一位 Mapbox 创建者回答了我的问题:https://github.com/mapbox/mapbox-gl-js/issues/8963。
我正在我的 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 标签,因为也许在传单库中有一个很好的解决方案。
干杯
一位 Mapbox 创建者回答了我的问题:https://github.com/mapbox/mapbox-gl-js/issues/8963。