Я работаю над фильтрацией в моей карте 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 И режим = 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 к этому вопросу, потому что, возможно, в библиотеке листовок есть хорошее решение для этого.
Cheers