Working with Map Area

Operating system requirements: iOS 5.0 or later.

Mobile device: iPad.

Description

This example implements executing the following operations:

Source Code

Executing the example requires to place the following code in the body of the mapChart:touchDownInShape: method of the ViewController class (see the Creating a Map with a Timeline section):

// Compare selected area identifier with the specified one
if([shape.ID isEqual:@"RU"] == YES)
{
    // Create an object for working with a tooltip
    MapTooltip *tooltip = [MapTooltip new];
    // Set tooltip text
    tooltip.text =@"Novaya Zemlya";
    // Set tooltip text color
    tooltip.borderColor = [UIColor blackColor];
    // Set tooltip for parent layer
    [[shape parentLayer] setTooltip:tooltip];
    // Pass tooltip of area parent layer
    [shape setTooltip:[[shape parentLayer] tooltip]];
    // Get array of area visual elements
    NSArray *visuals = [shape visuals];
    // Parse visual elements in cycle
    for(MapAreaVisual *visual in visuals)
    {
        /* Determine whether map area background fill parameters
        do not depend on data source */
        [[visual background] setIsDependent:NO];
        /* Set visual element fill parameters,
        used if  there is not scale binding */
        [[visual background] setValue:[SolidColorBrush solidColorBrushWithColor:[UIColor colorWithHex:@"86b7fb"]]];
        // Redraw map
        [m_view invalidate];
    }
    // Get area name
    NSString *title = [shape title];
    // Get area center point retrieved from platform attributes
    CGPoint centerPoint = [shape centerPoint];
    // Get geographic coordinates of area center
    CLLocationCoordinate2D centerPointCoordinate = [shape centerPointCoordinate];
    // Display obtained values in the development environment console
    NSLog(@"Area name: %@",title);
    NSLog(@"Area center coordinates obtained from platform attributes: (%f,%f)",centerPoint.x,centerPoint.y);
    NSLog(@"Area geographic center:");
    NSLog(@"Latitude: %f", centerPointCoordinate.latitude);
    NSLog(@"Longitude: %f", centerPointCoordinate.longitude);
    // Determine the point that determines area center
    CGPoint center = {0.25, 0.35};
    // Set new area center point
    [shape setCenter:center];
    // Get the rectangle that limits the area
    CGRect rect = [shape bounds];
    // Zoom and scroll the screen to the obtained rectangle
    [mapChart zoomToRect: rect];
}

Then manually press the map layer area with the RU identifier. As a result, the map is zoomed and scrolled to this area. Fill color for all areas is changed for blue. A tooltip is also displayed in the new center point of the specified area:

The development environment console displays map area name, center point coordinates obtained from platform attributes, and also area center geographic coordinates:

Area name: Russian Federation

Area center coordinates obtained from platform attributes: (744.861206,180.082138)

Area geographic center:

Latitude: 69.423810

Longitude: 103.997054

See also:

Examples of Component Use