Изменить цвет значка для некластеризованных маркеров в Mapbox IOS

Я пытаюсь реализовать кластеризацию в Mapbox в IOS. Я хочу изменить цвет некластеризованного StyleLayer в зависимости от конкретного атрибута в MGLPointFeature. Ниже приведен код для одной функции:

let feature = MGLPointFeature() feature.coordinate = CLLocationCoordinate2D(latitude: site.latitude, longitude: site.longitude) feature.attributes = [«id»: site.siteId, «siteCode»: site.siteCode, «risk»: site.riskId]

в приведенном выше фрагменте я хочу использовать этот атрибут (risk: site.riskId) для создания разных цветов для значка, который устанавливается с помощью следующего кода:

style.setImage(icon.withRenderingMode(.alwaysTemplate), forName: «icon») let ports = MGLSymbolStyleLayer(identifier: «ports», source: source) ports.iconImageName = NSExpression(forConstantValue: «icon») ports.predicate = NSPredicate(format: «cluster != YES») ports.iconAllowsOverlap = NSExpression(forConstantValue: true) style.addLayer(ports)

и следующие цвета для каждого идентификатора риска:

let risks = [ 0: Color.cellBackgroundColor, 1: UIColor.from(hexString: «B9E5D1»), 2: UIColor.from(hexString: «95E9FF»), 3: UIColor.from(hexString: «FCE2A6»), 4: UIColor.from(hexString: «FCE2A6») ]

У меня есть идея, что я могу получить эти результаты, используя NSExpression для атрибутов функций. Но понятия не имею, как это реализовать. Может ли кто-нибудь помочь мне сделать это. Спасибо

Источник: ledsshop.ru

Стиль жизни - Здоровье!