Управление отображением элементов карты

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

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

Описание

В данном примере разрешается скрывать элементы диаграммы, занимаемая площадь которых превышает указанное значение.

Исходный код

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

 (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear: animated];
    [self mapChartDidAppear: m_view];
    [self runExample];
}
-(void)runExample {
    // Разрешаем скрывать элементы карты, занимаемая площадь которых превышает допустимое значение
    [m_view setOptimizedOut: YES];
    /* Устанавливаем минимальное отношение площади элементов карты
    к площади области ее построения,
    при котором следует скрывать данные элементы */
    [m_view setOptimizeFactor: 0.03];
    // Обновляем карту
    [self refreshMap];
}
// Обновляет карту
-(void)refreshMap {
    [[m_view timeAxis] setNeedsLayout];
    if ([m_view optimizedOut]) {
        MapLegend *legend = [m_view legend];
        [legend setVisibility: [self checkOnVisibility: CGSizeMake(legend.width, legend.height)]];
        
        MapLabel *caption = [m_view caption];
        [caption setVisibility: [self checkOnVisibility: CGSizeMake(caption.maxWidth, caption.font.lineHeight)]];
        
        MapTimeAxis *timeAxis = [m_view timeAxis];
        [timeAxis setVisible: [self checkOnVisibility: timeAxis.frame.size]];
    }
}
// Проверяет, требуется ли отобразить указанный элемент с указанными размерами
-(BOOL) checkOnVisibility: (CGSize) size {
    float mapSquare = m_view.frame.size.width * m_view.frame.size.height;
    float objectSquare = size.width * size.height;
    NSLog(@"Коэффициент занимаемого пространства: %f", (float)(objectSquare / mapSquare));
    return ((float)(objectSquare / mapSquare) <= [m_view optimizeFactor]);
}

В результате выполнения примера заголовок, легенда и временная ось карты были скрыты:

В консоли среды разработки были выведены коэффициенты занимаемого элементами карты пространства по отношению ко всей карте:

Коэффициент занимаемого пространства: 0.091186

Коэффициент занимаемого пространства: 0.036551

Коэффициент занимаемого пространства: 0.348596

См. также:

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