Стиль слоя в зависимости от нескольких свойств объекта - PullRequest
0 голосов
/ 28 февраля 2020

есть ли способ рисовать объекты в зависимости от его свойств? Например, есть объект со свойствами int "level_a" и "level_b", и он необходим для заполнения объекта в зависимости от того, какое свойство больше. Невозможно сравнивать их напрямую, поскольку фильтр поддерживает только [">", feature(key), value] А объекты должны находиться в одном слое. Спасибо.

Требуется что-то вроде:

map.addLayer({
                'id': 'foo',
                'type': 'fill',
                'source': 'source',
                'filter': ['>', 'level_a', 'level_b'],   //cannot insert properties directly an value field
                'paint': {
                    'fill-color': '#blue',
                }
            });

1 Ответ

1 голос
/ 02 марта 2020

Да, выражения поддерживают это и многое другое: https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/

При использовании более нового синтаксиса это будет работать нормально:

'filter': ['>', ['get', 'level_a'], ['get', 'level_b']]
...