Использование методов и свойств шкалы

Требования к операционной системе: iOS 5.0 и выше.

Мобильное устройство: iPad.

Описание

В данном примере реализовано выполнение следующих операций:

Исходный код

Для выполнения примера необходимо  разместить в теле метода executeExample класса ViewController (см. раздел «Создание карты с временной шкалой») следующий код:

// Получаем объект для работы с визуальным элементом карты
MapAreaVisual *visual = [[[[m_view layers] objectAtIndex:0] visuals] objectAtIndex:0];
// Получаем объект для работы со шкалой
ValueScale *scale = [[visual background] scale];
// Создаем массив для хранения данных шкалы
NSMutableArray *scaleValue = [NSMutableArray array];
// Создаем массив для хранения цветовых значений шкалы
NSMutableArray *colorBrushes = [NSMutableArray array];
// Создаем объект для работы с цветом
UIColor *noDataColor = [UIColor colorWithHex:@"79c4fb"];
/* Создаем объект для работы с кистью, предназначенной
для заливки областей слоя карты, для которых отсутствуют данные */
SolidColorBrush* noDataBrush = [SolidColorBrush solidColorBrushWithColor: noDataColor];
// Задаем кисть шкале
[scale setNoData:noDataBrush];
// Задаём цвета для заливки фона областей слоя карты
NSArray *colors = [NSArray arrayWithObjects:@"50b1fa", @"078bed", @"0673c4", nil];
// Задаем тип шкалы
[scale setScaleType:ValueScaleLinear];
// Задаем число шагов шкалы, необходимое при обновлении данных
[scale setScaleSteps:2];
// Определяем шаг для шкалы карты
double step = (datasource.maxValue - datasource.minValue) / [scale scaleSteps];
/* Добавляем в массив данных новые максимальное
и минимальное значения шкалы */
[scaleValue addObject:[NSNumber numberWithDouble: 100]];
[scaleValue addObject:[NSNumber numberWithDouble: 10]];
// Обновляем данные шкалы
[scale updateWithData: scaleValue];
// Заполняем в цикле массив цветовых значений
for (int i = 0; i <= [scale scaleSteps]; i++)
{
    // Получаем текущее значение цвета
    NSString *hexColor = [colors objectAtIndex:i];
    UIColor *color = [UIColor colorWithHex:hexColor];
    /* Создаём объект для работы с кистью, предназначенной
    для заливки фона областей слоя карты */
    SolidColorBrush* brush = [SolidColorBrush solidColorBrushWithColor:color];
    // Добавляем в массив цветовых значений текущий объект для работы с кистью
    [colorBrushes addObject:brush];
}
// Обновляем значения шкалы
[scale setScaleValues: colorBrushes];
// Создаем массивы для работы со значениями «равно» и «больше»
NSMutableArray *equals = [NSMutableArray array];
NSMutableArray *greaters = [NSMutableArray array];
// Перебираем в цикле массивы «равно» и «больше»
for (int i = 0; i < [scale scaleSteps]; i++)
{
    // Смещаем на единицу цветовые значения массивов
    [equals addObject:[scale.less objectAtIndex:i + 1]];
}
// Получаем новое значение цвета для последних элементов массива
NSString *hexLastColor = [colors objectAtIndex:[scale scaleSteps]];
UIColor *lastColor = [UIColor colorWithHex:hexLastColor];
/* Создаём объект для работы с кистью, предназначенной
для заливки фона областей слоя карты */
SolidColorBrush* brush = [SolidColorBrush solidColorBrushWithColor:lastColor];
// Заполняем последние элементы массива новым значением цвета
[equals addObject: brush];
// Задаем шкале новые значения для массивов «равно» и «больше»
[scale setEqual: equals];
[scale setGreater:equals];
/* Получаем кисть, используемую для заливки областей слоя карты,
для которых отсутствуют данные */
SolidColorBrush *borders = [scale getValue];
// Задаем корневому слою карты цвет границ областей
[[[m_view layers] objectAtIndex:0] setStrokeColor: [borders color]];
// Задаем корневому слою карты толщину границ областей
[[[m_view layers] objectAtIndex:0] setStrokeThickness:1];
// Задаем число, по которому будет осуществляться поиск значения шкалы
NSNumber *number = [NSNumber numberWithDouble:20.2];
/* Получаем кисть, соответствующую числу, и задаем ее
в качестве фона заголовка карты */
[[m_view caption] setBackground:[scale getValue: number]];

В результате выполнения примера были установлены новые цветовые значения шкалы карты.  Для всех границ областей корневого слоя карты был применен голубой цвет, что соответствует значению шкалы для отсутствующих данных. Для заголовка карты установлен цвет фона, который соответствует значению 20.2:

См. также:

Примеры использования компонентов