Mapbox фильтр нескольких условий не работает на кластерах - PullRequest
0 голосов
/ 07 ноября 2019

У меня проблема с обновлением mapbox для фильтрации значений моего кластера на основе ползунка. Существует 3 слоя, и некластеризованный слой обновляется в соответствии с ползунком, а кластерные слои - нет. Смотрите в действии здесь: https://blue -volcano.com / chart /

Я попытался запустить несколько различных операций фильтрации и искал в Интернете, что это может быть, хотя пока что не повезло.

Это настройки слоя и работа при начальной загрузке:

map.addLayer({
    id: "clusters",
    type: "circle",
    source: "members",
    filter: ["has", "point_count"],
    paint: {
        "circle-color": [
            "step",
            ["get", "point_count"],
            "#162930",
            20,
            "#162930",
            30,
            "#162930"
        ],
        "circle-radius": [
            "step",
            ["get", "point_count"],
            20,
            50,
            30,
            100,
            40
        ]
    }
});

map.addLayer({
    id: "cluster-count",
    type: "symbol",
    source: "members",
    filter: ["has", "point_count"],
    layout: {
        "text-field": "{point_count_abbreviated}",
        "text-size": 14
    },
    paint: {
        "text-color": "#ffffff"
    }
});

map.addLayer({
    id: "unclustered-point",
    type: "circle",
    source: "members",
    filter: ["!", ["has", "point_count"]],
    paint: {
        "circle-color": "#162930",
        "circle-radius": 4,
        "circle-stroke-width": 1,
        "circle-stroke-color": "#fff"
    }
});

А вот функция ползунка изменения года:

function ChangeSlider(year)
{
    var clusterFilter=[
    "all",
    ["has", "point_count"],
    ['<=', ['number', ['get', 'yearjoined']], year]
    ]

    var unclusterFilter=[
    "all",
    ["!", ["has", "point_count"]],
    ['<=', ['number', ['get', 'yearjoined']], year]
    ]

    map.setFilter('clusters',clusterFilter);
    map.setFilter('cluster-count',clusterFilter);
    map.setFilter('unclustered-point',unclusterFilter);
    document.getElementById('active-year').innerText = year;
}

Значения ползункаПроходите правильно, и если вы полностью приблизитесь к где-нибудь, например, в Германию, и используете ползунок, вы увидите, что поведение работает при смене ползунка (оно исчезает, когда в 2020 году, и появляется, когда в 2019 году). * Любые указатели очень ценятся.

...