Я пытаюсь создать цветную карту областей Великобритании - мне нужно, чтобы цвета управлялись локальными данными (например, продажи по почтовому индексу), которые всегда будут меняться в зависимости от выбора пользователя, например, диапазонов дат отчета и т. Д. У меня естьИсточник набора листов, который я назначаю слою, как показано ниже (чувствительные значения не отображаются):
this.map.addLayer({
"id": "uk-pc-data",
"type": "fill",
"source-layer": "***",
"source": {
type: 'vector',
url: '***'
}
});
Затем я могу стилизовать области почтовых индексов в наборе плиток, обратившись к свойству имени в наборе плиток.особенности, такие как:
"paint": {
"fill-color": [
"match",
["get", "name", [{name: "PR"}, {name: "CH"}, {name: "LN"}]],
[
"PR",
"DD",
"AL",
"PO"
],
"hsla(344, 84%, 29%, 0.37)",
"hsla(131, 94%, 34%, 0)"
]
}
Выше назначит один цвет для совпавших областей, и по умолчанию для всех других (не совпавших);Что я хотел бы сделать, так это вычислить значение цвета локально (основываясь на постоянно изменяющихся данных) на основе имени элемента, например
"paint": {
"fill-color": function (feature = {}) {
return localSalesByArea(feature.name)
}
}
Это, однако, представляется невозможным: любая помощь илиуказатели оценены;Я просматривал примеры из Mapbox, такие как choroplet, heatmaps, выражения, но, похоже, они основаны на значениях, передаваемых через сам набор данных (т. Е. Заполнение), в моем случае значения, определяющие цветовую шкалу, разделены (они поступают из внутренней отчетностиAPI)