Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере в консоль среды разработки выводятся следующие данные:
значение атрибута с указанным индексом;
значения имени и типа параметров атрибутов;
координаты центра географического региона;
позиция верхней левой координаты SVG-области;
позиция нижней правой координаты SVG-области;
признак наличия географических данных в SVG-файле;
координаты в формате SVG-области и географические координаты.
Также в примере выполняется разбор SVG-данных в основном и фоновом потоке. После запуска разбора данных в консоль среды разработки выводится информация о том, закончен ли разбор SVG-данных.
Для выполнения примера необходимо разместить в теле метода executeExample класса ViewController (см. раздел «Создание карты с временной шкалой») следующий код:
// Получаем топооснову
MapTopobase *topobase = [m_view topobase];
// Получаем атрибуты топоосновы
NSMutableDictionary *attributes = [topobase ppAttributes];
// Выводим значение атрибута с индексом RU
NSDictionary *nameAttributes = [attributes valueForKey:@"Name"];
NSLog(@"%@: %@", @"Значение атрибута с индексом RU", [nameAttributes valueForKey:@"RU"]);
// Получаем параметры атрибутов
NSDictionary *attrParams = [topobase ppAttributeParameters];
NSLog(@"Параметры атрибутов");
// Получаем ключи массива параметров атрибутов
NSArray *keys = [attrParams allKeys];
// Перебираем в цикле массив ключей
for(NSString *key in keys)
{
// Получаем значение для текущего ключа
id obj = [attrParams valueForKey:key];
// Извлекаем из полученного значения имя параметра
NSString *name = [obj valueForKey:@"Name"];
// Извлекаем из полученного значения тип параметра
NSString *type = [obj valueForKey:@"Type"];
// Выводим в консоль среды разработки информацию о параметрах атрибута
NSLog(@"Параметр: \"%@\", тип: \"%@\"",name, type);
}
// Выводим координаты центра рассчитанного географического региона
MKCoordinateRegion region = [topobase coordinateRegion];
NSLog(@"%@ %f, %f",@"Координаты центра географического региона:", region.center.latitude, region.center.longitude);
// Выводим позицию верхней левой координаты SVG-области
CLLocationCoordinate2D tl = [topobase topLeftCoordinate];
NSLog(@"%@: %f, %f", @"Позиция верхней левой координаты", tl.latitude, tl.longitude);
// Выводим позицию нижней правой координаты SVG-области
CLLocationCoordinate2D br = [topobase bottomRightCoordinate];
NSLog(@"%@: %f, %f", @"Позиция нижней правой координаты", br.latitude, br.longitude);
// Выводим признак наличия географических данных в SVG
NSLog(@"%@: %hhd",@"Признак наличия географических данных", [topobase hasGeoTransform]);
// Получаем координаты и выводим их в формате SVG-области
CGPoint svgCoord = [topobase convertCoordinateToPoint:tl];
NSLog(@"%@: %f, %f",@"Координаты в формате SVG-области", svgCoord.x, svgCoord.y);
// Выводим географические координаты
CLLocationCoordinate2D geoCoord = [topobase convertPointToCoordinate:svgCoord];
NSLog(@"%@: %f, %f",@"Географические координаты", geoCoord.latitude, geoCoord.longitude);
// Загружаем файл с топоосновой
NSData *file = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"world.svg" ofType:nil]];
// Создаем объекты топоосновы
MapTopobase *newTopobase1 = [[MapTopobase new] autorelease];
MapTopobase *newTopobase2 = [[MapTopobase new] autorelease];
// Начинаем разбор SVG-данных в основном потоке
NSLog(@"Начат разбор SVG-данных");
[newTopobase1 parseTopobase:file];
// Выводим признак окончания разбора
NSLog(@"%@ %hhd", @"Признак окончания разбора SVG-данных в основном потоке:", [newTopobase1 hasFinished]);
// Начинаем разбор SVG-данных в фоновом потоке
[newTopobase2 threadedParse:file];
// Выводим признак окончания разбора
NSLog(@"%@ %hhd", @"Признак окончания разбора SVG-данных в фоновом потоке:", [newTopobase2 hasFinished]);
В результате в консоль среды разработки будет выведена информация о топооснове карты:
Значение атрибута с индексом RU: Russian Federation
Параметры атрибутов
Параметр: "ISO", тип: "string"
Параметр: "IdMapping", тип: "int"
Параметр: "TextOriginOffset", тип: "point"
Параметр: "BarOriginOffset", тип: "point"
Параметр: "PieOriginOffset", тип: "point"
Параметр: "ImageOriginOffset", тип: "point"
Параметр: "Name", тип: "string"
Параметр: "Description", тип: "string"
Параметр: "OriginOffset", тип: "point"
Координаты центра географического региона: 13.997195, 10.893482
Позиция верхней левой координаты: 83.685213, -168.553737
Позиция нижней правой координаты: -55.690824, 190.340700
Признак наличия географических данных: 1
Координаты в формате SVG-области: -10.000000, -10.000000
Географические координаты: 83.685212, -168.553736
Начат разбор SVG-данных
Признак окончания разбора SVG-данных в основном потоке: 1
Признак окончания разбора SVG-данных в фоновом потоке: 0
См. также: