Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере извлекается информация о пузырьке на карте Apple:
идентификатор пузырька;
наименование;
отображаемое наименование пузырька;
размер пузырька, а также минимальный и максимальные размеры;
кисть, используемая для заливки пузырька,
координаты расположения пузырька.
В базовый пример «Отображение экспресс-отчёта» необходимо добавить следующий файл:
CustomMapDataBubbleViewController.h/.mm. Класс, реализующий протокол для работы с источником данных карты Apple.
Для выполнения примера необходимо создать класс, реализующий протокол для работы с источником данных карты Apple, а также добавить заголовочный файл класса в исходный код класса ViewController (см. раздел «Отображение экспресс-отчёта»). Далее необходимо разместить в теле метода executeExample класса ViewController следующий код:
// Получаем контроллер для работы с экспресс-отчётом
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController *)m_controller;
// Получаем делегат для работы с экспресс-отчётом
EAReportDelegateImpl *delegate = [contr delegate];
// Получаем источник данных карты
MapDataViewDatasource *dataSource = (MapDataViewDatasource *)[delegate mapDatasource];
// Создаём контроллер для работы с картой Apple
CustomMapDataBubbleViewController *bubbleViewController = [[CustomMapDataBubbleViewController alloc] initWithDatasource: dataSource];
// Получаем идентификаторы пузырьков на карте Apple
NSArray *allShapeIds = [bubbleViewController allShapeIDs];
NSLog(@"Количество пузырьков на карте: %d", [allShapeIds count]);
NSLog(@"Минимальный радиус пузырьков карты: %f", [bubbleViewController minSize]);
NSLog(@"Максимальный радиус пузырьков карты: %f", [bubbleViewController maxSize]);
if ([allShapeIds count] > 0) {
// Получаем идентификатор первого пузырька на карте
NSString *shapeId = [allShapeIds objectAtIndex: 0];
MapShape *mapShape = [bubbleViewController shapeWithID: shapeId];
NSLog(@"Идентификатор пузырька: %@", [mapShape ID]);
// Получаем наименование пузырька
NSString *shapeName = [bubbleViewController nameWithID: shapeId];
NSLog(@"Наименование пузырька: %@", shapeName);
[bubbleViewController setValue:[NSNumber numberWithInt:0] forKey:@"m_index"];
// Получаем отображаемое наименование пузырька
NSString *shapeCaption = [bubbleViewController captionWithID: shapeId];
NSLog(@"Отображаемое наименование пузырька на карте: %@", shapeCaption);
// Получаем координаты пузырька по идентификатору
CLLocationCoordinate2D location = [bubbleViewController locationWithID: shapeId];
NSLog(@"Широта, соответтвующая пузырьку: %f", location.latitude);
NSLog(@"Долгота, соответствующая пузырьку: %f", location.longitude);
// Получаем кисть для заливки пузырька
Brush *brush = [bubbleViewController brushWithID: shapeId];
// Определяем цвет кисти в виде шестнадцатиричной строки
const CGFloat *colorComponents = CGColorGetComponents([[brush mainColor] CGColor]);
CGFloat r = colorComponents[0];
CGFloat g = colorComponents[1];
CGFloat b = colorComponents[2];
NSString *hexString=[NSString stringWithFormat:@"%02X%02X%02X", (int)(r * 255), (int)(g * 255), (int)(b * 255)];
NSLog(@"Цвет заливки пузырька: %@", hexString);
// Получаем размер пузырька
double size = [bubbleViewController sizeWithID: shapeId];
NSLog(@"Размер пузырька: %f", size);
} else {
NSLog(@"На карте отсутствуют пузырьки");
}
В результате выполнения примера в консоли среды разработки была выведена информация о первом пузырьке на карте Apple:
Количество пузырьков на карте: 42
Минимальный радиус пузырьков карты: 0.000000
Максимальный радиус пузырьков карты: 0.000000
Идентификатор пузырька: GL
Наименование пузырька: Greenland
Отображаемое наименование пузырька на карте: Greenland
GDP per capita growth (annual %)
Широта, соответствующая пузырьку: 76.126060
Долгота, соответствующая пузырьку: -42.246990
Цвет заливки пузырька: F0F0F0
Размер пузырька: 20.000000
См. также: