MapBox GL JS合并过滤器

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

我正在尝试在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
  ]
]

过滤器不适用,但是如果我从表达式中删除“ inwith”,则过滤器可以正常工作。 “ inside”表达式本身也可以很好地工作,但是在上述情况下会失败。

有关如何解决此问题的见解?

mapbox-gl-js
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.