Mapbox, как написать свойство рисования слоя с остановками, чтобы он мог поддерживать состояние объекта? - PullRequest
0 голосов
/ 01 июля 2018

Я использую mapbox gl js 0.46.0. Я воспользовался преимуществом API setFeatureState (> = 0.46.0), который имеет гораздо лучшую производительность для «зависания над функцией», например, для сценариев использования.

Я решил использовать один слой для объекта, имеющего два состояния: одно «нет», а другое «выбрано». К сожалению, из-за неадекватной документации и примеров я не могу полностью синхронизировать визуальные эффекты для этих двух состояний.

Например, если я хотел иметь свойство ширины линии с остановками на основе уровней масштабирования, как мне написать выражение такого типа для соответствующих состояний «выбранный» и «нет»?

 "paint": {
            "line-color": [
                "match",[ "string", [ "feature-state", "line_color" ], "none" ],
                    "selected", "hsl(189, 87%, 37%)",
                    "none", "hsl(189, 87%, 37%)",
                    "hsl(189, 87%, 37%)"
                ],
            "line-width":  [
                "match",[ "string", [ "feature-state", "line_width" ], "none" ],
                    "selected", 4,
                    "none", 3,
                    3
                ],
            "line-opacity": [
                "match",[ "string", [ "feature-state", "line_opacity" ], "none" ],
                    "selected", 0.68,
                    "none", 0.38,
                    0.38
                ]
        }
...