Я использую Mapbox GL в проекте React и хотел бы установить цвет круга точек данных на основе свойства из исходного гео JSON. Моя цель - закрасить зеленый круг для низких значений и красный для высоких значений. Все, что между ними, будет цветовым градиентом. Например, если мои точки данных находятся в диапазоне от 0 до 100. 0 должно быть зеленым, 100 - красным, а 50 - желтым.
Вот что я пробовал:
paint: {
'circle-radius': 10,
'circle-color': [
'let',
'maxVal',
['max', ['get', 'P1_H']],
[
'interpolate',
['linear'],
['get', 'P1_H'],
0,
'green',
['var', 'maxVal'],
'red'
]
]
}
Но это дает мне ошибку:
Пары ввода / вывода для «интерполированных» выражений должны быть определены с использованием буквенных чисел c значений (не вычисляемые выражения) для входных значений.
Самая большая проблема для меня заключается в том, что я заранее не знаю, какое максимальное значение будет в исходных данных. Это может быть 20 или 80, я просто не знаю. Так что жесткое кодирование числа не работает для меня. Минимальное значение также может измениться, но сейчас я сосредоточен на максимальном значении. Поэтому мой вопрос заключается в том, как я могу интерполировать цвет круга на основе объекта, который имеет наибольшее значение в выбранном свойстве?