Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализовано выполнение следующих операций:
задается всплывающая подсказка родительского слоя области;
задается постоянное значение цветовой шкалы для визуальных элементов областей карты;
в консоль среды разработки выводятся название области карты, координаты центральной точки, полученные из атрибутов платформы, а также географические координаты центра области;
задается новый центр области карты.
Для выполнения примера необходимо разместить в теле метода mapChart:touchDownInShape: класса ViewController (см. раздел «Создание карты с временной шкалой») следующий код:
// Сравниваем идентификатор выбранной области с заданным
if([shape.ID isEqual:@"RU"] == YES)
{
// Создаем объект для работы со всплывающей подсказкой
MapTooltip *tooltip = [MapTooltip new];
// Задаем текст подсказки
tooltip.text =@"Новая Земля";
// Задаем цвет границы подсказки
tooltip.borderColor = [UIColor blackColor];
// Задаем всплывающую подсказку родительскому слою
[[shape parentLayer] setTooltip:tooltip];
// Передаем всплывающую подсказку родительского слоя области
[shape setTooltip:[[shape parentLayer] tooltip]];
// Получаем массив визуальных элементов области
NSArray *visuals = [shape visuals];
// Перебираем в цикле визуальные элементы
for(MapAreaVisual *visual in visuals)
{
/* Устанавливаем признак того, что параметры заливки фона областей карты
не зависят от источника данных */
[[visual background] setIsDependent:NO];
/* Задаем параметры заливки визуального элемента,
используемые при отсутствии привязки к шкале */
[[visual background] setValue:[SolidColorBrush solidColorBrushWithColor:[UIColor colorWithHex:@"86b7fb"]]];
// Перерисовываем карту
[m_view invalidate];
}
// Получаем название области
NSString *title = [shape title];
// Получаем центральную точку области, извлеченную из атрибутов платформы
CGPoint centerPoint = [shape centerPoint];
// Получаем географические координаты центра области
CLLocationCoordinate2D centerPointCoordinate = [shape centerPointCoordinate];
// Выводим в консоль среды разработки полученные значения
NSLog(@"Название области: %@",title);
NSLog(@"Координаты центра области, полученные из атрибутов платформы: (%f,%f)",centerPoint.x,centerPoint.y);
NSLog(@"Географический центр области:");
NSLog(@"Широта: %f", centerPointCoordinate.latitude);
NSLog(@"Долгота: %f", centerPointCoordinate.longitude);
// Определяем точку, задающую центр области
CGPoint center = {0.25, 0.35};
// Задаем новую центральную точку области
[shape setCenter:center];
// Получаем прямоугольник, ограничивающий область
CGRect rect = [shape bounds];
// Масштабируем и прокручиваем экран к полученному прямоугольнику
[mapChart zoomToRect: rect];
}
Затем вручную нажмём на область слоя карты с идентификатором «RU». В результате этого будет изменён масштаб и выполнена прокрутка к данной области. Цвет заливки всех областей будет изменен на голубой. Также в точке нового центра указанной области будет отображена всплывающая подсказка:

В консоли среды разработки будут выведены название области карты, координаты центральной точки, полученные из атрибутов платформы, а также географические координаты центра области:
Название области: Russian Federation
Координаты центра области, полученные из атрибутов платформы: (744.861206,180.082138)
Географический центр области:
Широта: 69.423810
Долгота: 103.997054
См. также: