Рисование области слоя карты

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

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

Описание

В данном примере отрисовывается область слоя карты с идентификатором «CA».

Исходный код

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

// Получаем слой карты
MapLayer *layer = [[m_view layers] objectAtIndex:0];
// Получаем область слоя карты
MapShape *shape = [layer shapeWithId:@"CA"];
// Создаём область слоя
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
// Устанавливаем путь, описывающий графическую область
[shapeLayer setPath: [shape path]];
// Устанавливаем цвет границы области
shapeLayer.strokeColor = [[UIColor colorWithHex:@"#ffa604"] CGColor];
// Определяем толщину границы
shapeLayer.lineWidth = 3.0;
// Устанавливаем цвет границы области
shapeLayer.fillColor = [[UIColor colorWithHex:@"ebebeb"] CGColor];
// Уменьшаем размер графической области в 4 раза
[shapeLayer setTransform:CATransform3DMakeScale(0.33, 0.33, 0.33)];
// Добавляем слой на карту
[self.view.layer addSublayer:shapeLayer];

В результате выполнения примера на карте была нарисована ещё одна область слоя карты с идентификатором «CA», имеющая границу оранжевого цвета толщиной в 3 пикселя и с заливкой серого цвета:

Теперь нарисуем графическую область, используя последний путь в массиве, хранящимся в свойстве MapShape.paths: Для этого фрагмент кода в примере:

[shapeLayer setPath: [shape path]];

заменим на следующий:

NSArray *paths = [shape paths];
shapeLayer.path = [[paths objectAtIndex:[paths count] - 1] CGPath];

После выполнения примера толщина границы нарисованной области слоя карты стала меньше:

См. также:

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