MapBox GL JS Комбинированные фильтры - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь объединить несколько фильтров в MapBox GL JS v1.9.1. Фильтр - если свойство "d" находится между 2 целыми числами, а свойство "i" имеет одно из заданных значений И, если точка находится в пределах многоугольника. Выражение фильтра выглядит следующим образом -

[
  "all",
  [
    ">=",
    [
      "get",
      "d"
    ],
    1577854800
  ],
  [
    "<=",
    [
      "get",
      "d"
    ],
    1577941199
  ],
  [
    "match",
    [
      "get",
      "i"
    ],
    [
      "bdba680267591d0543072cf18cd98e57",
      "c42c6d59e302b45e5fb6be6e8abdfcbb",
      "2b34c7d0c8fe7021eae2cf8b693f6d14",
      "bcbce48c922fdd706094d80f6f6efa5a"
    ],
    true,
    false
  ],
  [
    "==",
    [
      "within",
      [
        "object",
        {
          "type": "FeatureCollection",
          "features": [
            {
              "type": "Feature",
              "geometry": {
                "type": "Polygon",
                "coordinates": [
                  [
                    [
                      -73.96644912936983,
                      40.7579747
                    ],
                    [
                      -73.96790253328018,
                      40.76354671807032
                    ],
                    [
                      -73.96870366224104,
                      40.76483841792908
                    ],
                    [
                      -73.98926755133365,
                      40.77225531118752
                    ],
                    [
                      -73.99108514195954,
                      40.771908119615176
                    ],
                    [
                      -73.99284935487653,
                      40.77142674159516
                    ],
                    [
                      -73.99454319974974,
                      40.77081581306094
                    ],
                    [
                      -73.99615036392716,
                      40.770081217588285
                    ],
                    [
                      -74.00454413035031,
                      40.75940186729005
                    ],
                    [
                      -74.00463607063017,
                      40.7579747
                    ],
                    [
                      -73.97078314761191,
                      40.74873768960421
                    ],
                    [
                      -73.96966695937762,
                      40.749885383567914
                    ],
                    [
                      -73.96870366224104,
                      40.75111098207092
                    ],
                    [
                      -73.96790253328018,
                      40.752402681929674
                    ],
                    [
                      -73.96727128780488,
                      40.753748043368425
                    ],
                    [
                      -73.96681600505411,
                      40.75513410982106
                    ],
                    [
                      -73.9665410696497,
                      40.756547532709945
                    ],
                    [
                      -73.96644912936983,
                      40.7579747
                    ]
                  ]
                ]
              }
            }
          ]
        }
      ]
    ],
    true
  ]
]

Фильтр не применяется, но если я удаляю «в» из выражения, фильтр работает нормально. Выражение «в пределах» отлично работает и само по себе, но в приведенном выше случае не работает.

1 Ответ

0 голосов
/ 23 апреля 2020

Вложенный «внутри» фильтр был ошибка и исправлен.

...