Я использую стиль, управляемый данными, для стилизации векторного слоя Mapbox для картограммы. Однако вместо того, чтобы получать данные строго из свойств слоя, мне нужно использовать данные statisti c из отдельного объекта (взятого из нашей базы данных). Этот отдельный объект содержит одно значение statisti c для каждого многоугольника в векторном слое. Объект отображает значения статистики в полигоны векторного слоя с помощью переменной «GEOID». Чтобы объединить полигон с его данными, я хотел бы использовать выражение Mapbox, чтобы получить значение GEOID от каждого полигона в векторном слое и передать этот идентификатор отдельной функции, чтобы получить значение statisti c для полигона, имеющего этот геоид. Возможно ли это?
vectorLayer: {
id: "fooLayer",
type: "fill",
"source-layer": "foo-layer-dvf1ci",
paint: {
"fill-color": [
"rgba",
100,100,100,
this.getStatForDistrict(["get", "GEOID"])]
]
}
},
getStatForDistrict(districtId) {
console.log("districtId: " + districtId);
let alphaValue = fetchDataForThisDistrictFromDatabase(districtId)
return alphaValue;
},
Я вижу, что в настоящее время я передаю ["get", "GEOID"] в функцию getStatForDistrict, когда мне действительно нужно передать вычисленное выражение Mapbox.
Подробнее о свойстве рисования Mapbox-GL: https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#paint -property
Подробнее о синтаксисе выражений Mapbox-GL: https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/