Обновление управляемых данными стилей во время выполнения является простым. Вы просто звоните map.setPaintProperty
.
Я обычно реализую это с помощью одной функции, которая генерирует значение свойства. Примерно так:
function fillColorByPopulation(min, max) {
return {
property: 'pop',
stops: [
[min, 'red'],
[max, 'blue']
],
type: 'exponential'
}
}
function updateStyle(prop) {
if (prop === 'population') {
map.setPaintStyle('regions', 'fill-color', fillColorByPopulation(data.minpopulation, data.maxpopulation));
} else {
map.setPaintStyle('regions', 'fill-color', 'transparent');
}
}
Обычно я не создаю стили, управляемые данными, в Mapbox Studio. Проще создать их все в Javascript.