Я пытаюсь динамически изменить icon-size
некоторых точек на карте Mapbox, и у меня возникла проблема, которую я не могу исправить. Размер значка должен меняться в зависимости от того, находится ли «ключ» для данной точки данных в списке выбранных ключей. Вот код, который у меня есть до сих пор:
mapRef
.getMap() // Using a React reference, getting the map itself
.setLayoutProperty(layer, "icon-size", [
"case",
[
"in",
["get", key],
selectedData // Mapping an immutable list to the keys
.toArray()
.map(data => data[key as keyof CommonData])
],
1.5,
1
]
);
Похоже, что он должен делать то, что я хочу, но когда я пытаюсь запустить его, я получаю Error: "layers.stl-crimes.layout.icon-size[1][0]: Unknown expression "in". If you wanted a literal array, use ["literal", [...]]."
Я в замешательстве этим, как я думаю, я мог бы использовать выражение in
внутри выражения case
. Я попытался добавить выражение literal
в массив, а также выражение to-string
вокруг выражения get
, но все безрезультатно. Любая помощь будет принята с благодарностью, спасибо!