Operating system requirements: iOS 5.0 or later.
Mobile device: iPad.
This example displays the following data in the development environment console:
Attribute value with the specified index.
Values of attribute parameter type and name.
Coordinates of geographic area center.
Position of top left coordinate of SVG area.
Position of bottom right coordinate of SVG area.
Indicates whether SVG file contains geographic data.
Coordinates in the SVG area format and geographic coordinates.
The example also shows parsing of SVG data in the main and background streams. After parsing data, the development environment console displays information whether SVG data parsing is finished.
Executing the example requires to place the following code in the body of the executeExample method of the ViewController class (see the Creating a Map with a Timeline section):
// Get topobase
MapTopobase *topobase = [m_view topobase];
// Get topobase attributes
NSMutableDictionary *attributes = [topobase ppAttributes];
// Display attribute value with the RU index
NSDictionary *nameAttributes = [attributes valueForKey:@"Name"];
NSLog(@"%@: %@", @"Index value with the RU identifier", [nameAttributes valueForKey:@"RU"]);
// Get attribute parameters
NSDictionary *attrParams = [topobase ppAttributeParameters];
NSLog(@"Attribute parameters");
// Get keys of attribute parameter array
NSArray *keys = [attrParams allKeys];
// Parse array of keys in cycle
for(NSString *key in keys)
{
// Get current key value
id obj = [attrParams valueForKey:key];
// Take parameter name from obtained value
NSString *name = [obj valueForKey:@"Name"];
// Take parameter type from obtained value
NSString *type = [obj valueForKey:@"Type"];
// Display information about attribute parameters to the development environment console
NSLog(@"Parameter: \"%@\", type: \"%@\"",name, type);
}
// Display coordinates of calculated geographic region
MKCoordinateRegion region = [topobase coordinateRegion];
NSLog(@"%@ %f, %f",@"Coordinates of geographic region center:", region.center.latitude, region.center.longitude);
// Display position of top left coordinate of SVG area
CLLocationCoordinate2D tl = [topobase topLeftCoordinate];
NSLog(@"%@: %f, %f", @"Position of top left coordinate", tl.latitude, tl.longitude);
// Display position of bottom right coordinate of SVG area
CLLocationCoordinate2D br = [topobase bottomRightCoordinate];
NSLog(@"%@: %f, %f", @"Position of bottom right coordinate", br.latitude, br.longitude);
// Display whether SVG contains geographic data
NSLog(@"%@: %hhd",@"Whether there is geographic data", [topobase hasGeoTransform]);
// Get coordinates and display them in SVG area format
CGPoint svgCoord = [topobase convertCoordinateToPoint:tl];
NSLog(@"%@: %f, %f",@"Coordinates in SVG area format", svgCoord.x, svgCoord.y);
// Display geographic coordinates
CLLocationCoordinate2D geoCoord = [topobase convertPointToCoordinate:svgCoord];
NSLog(@"%@: %f, %f",@"Geographic coordinates", geoCoord.latitude, geoCoord.longitude);
// Load file with topobase
NSData *file = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"world.svg" ofType:nil]];
// Create topobase objects
MapTopobase *newTopobase1 = [[MapTopobase new] autorelease];
MapTopobase *newTopobase2 = [[MapTopobase new] autorelease];
// Start parsing of SVG data in the main stream
NSLog(@"SVG data parsing started");
[newTopobase1 parseTopobase:file];
// Display whether parsing is finished
NSLog(@"%@ %hhd", @"Whether SVG data parsing in the main stream is finished:", [newTopobase1 hasFinished]);
// Start parsing of SVG data in the background stream
[newTopobase2 threadedParse:file];
// Display whether parsing is finished
NSLog(@"%@ %hhd", @"Whether SVg data parsing in the background stream is finished:", [newTopobase2 hasFinished]);
As a result, the development environment console displays information about map topobase:
Attribute value with the RU index: Russian Federation
Attribute parameters
Parameter: "ISO", type: "string"
Parameter: "IdMapping", type: "int"
Parameter: "TextOriginOffset", type: "point"
Parameter: "BarOriginOffset", type: "point"
Parameter: "PieOriginOffset", type: "point"
Parameter: "ImageOriginOffset", type: "point"
Parameter: "Name", type: "string"
Parameter: "Description", type: "string"
Parameter: "OriginOffset", type: "point"
Coordinates of geographic region center: 13.997195, 10.893482
Position of top left coordinate: 83.685213, -168.553737
Position of bottom right coordinate: -55.690824, 190.340700
Whether there is geographic data: 1
Coordinates in SVG area format: -10.000000, -10.000000
Geographic coordinates: 83.685212, -168.553736
SVG data parsing started
Whether SVG data parsing in the main stream is finished: 1
Whether SVG data parsing in the background stream is finished: 0
See also: