Share on Google+Share on Google+

Ravi Vora
how to do map in iphone?-RV
1 Answer(s)      5 years and 3 months ago
Posted in : MobileApplications

In Appdelegate.h

@class MapKitDisplayViewController;

@interface MapKitDisplayAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    MapKitDisplayViewController *viewController;
    UINavigationController *navigationController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet MapKitDisplayViewController *viewController;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

@end

In Appdelegate.m

@synthesize window;
@synthesize viewController;
[email protected] navigationController;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.

    // Add the view controller's view to the window and display.
    //[window addSubview:viewController.view];
    [self.window addSubview:navigationController.view];
    [window makeKeyAndVisible];

    return YES;
}

In mapkitdisplayviewcontroller.h

#import <MapKit/MapKit.h>

@class DisplayMap;

@interface MapKitDisplayViewController : UIViewController <MKMapViewDelegate> {

    int g;

    IBOutlet MKMapView *mapView;

    NSMutableArray *arr;

    NSMutableArray *arr_temp;

    NSMutableArray *final_arr;

    NSMutableArray *final_arr_add;
}

-(void)ButtonPressed:(id)sender;

@property (nonatomic, retain) IBOutlet MKMapView *mapView;

@end

In mapkitdisplayviewcontroller.m

#import "DisplayMap.h"

@implementation MapKitDisplayViewController

@synthesize mapView;

- (void)viewDidLoad {
    [super viewDidLoad];

    g=0;

    arr = [[NSMutableArray alloc]init];

    arr_temp = [[NSMutableArray alloc]init];

    final_arr = [[NSMutableArray alloc]init];

    final_arr_add = [[NSMutableArray alloc]init];

    NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]init];
    [dic1 setObject:@"Germany" forKey:@"city"];
    [dic1 setObject:@"51.165691" forKey:@"lat"];
    [dic1 setObject:@"10.451526" forKey:@"lon"];

    NSMutableDictionary *dic2 = [[NSMutableDictionary alloc]init];
    [dic2 setObject:@"Austria" forKey:@"city"];
    [dic2 setObject:@"47.516231" forKey:@"lat"];
    [dic2 setObject:@"14.550072" forKey:@"lon"];

    NSMutableDictionary *dic3 = [[NSMutableDictionary alloc]init];
    [dic3 setObject:@"Hungary" forKey:@"city"];
    [dic3 setObject:@"47.162494" forKey:@"lat"];
    [dic3 setObject:@"19.503304" forKey:@"lon"];

    NSMutableDictionary *dic4 = [[NSMutableDictionary alloc]init];
    [dic4 setObject:@"Romania" forKey:@"city"];
    [dic4 setObject:@"45.943161" forKey:@"lat"];
    [dic4 setObject:@"24.96676" forKey:@"lon"];

    [final_arr addObject:dic1];
    [final_arr addObject:dic2];
    [final_arr addObject:dic3];
    [final_arr addObject:dic4];

    [arr addObject:@"Germany"];
    [arr addObject:@"Austria"];

    [arr addObject:@"Hungary"];
    [arr addObject:@"Romania"];
    [mapView setMapType:MKMapTypeStandard];
    [mapView setZoomEnabled:YES];
    [mapView setScrollEnabled:YES];
    MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
    region.center.latitude = 51.165691 ;
    region.center.longitude = 10.451526;
    region.span.longitudeDelta = 0.01f;
    region.span.latitudeDelta = 0.01f;
    [mapView setRegion:region animated:YES]; 

    [mapView setDelegate:self];

    DisplayMap *ann = [[DisplayMap alloc] init]; 
    ann.title = @"Germany";
    ann.subtitle = @""; 
    ann.coordinate = region.center; 
    [mapView addAnnotation:ann];


    MKCoordinateRegion region1 = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
    region1.center.latitude = 47.516231 ;
    region1.center.longitude = 14.550072;
    region1.span.longitudeDelta = 0.01f;
    region1.span.latitudeDelta = 0.01f;

        DisplayMap *ann1 = [[DisplayMap alloc] init]; 
    ann1.title = @"Austria";
    ann1.subtitle = @""; 
    ann1.coordinate = region1.center;
    [mapView addAnnotation:ann1];

        MKCoordinateRegion region2 = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
    region2.center.latitude = 47.162494 ;
    region2.center.longitude = 19.503304;
    region2.span.longitudeDelta = 0.01f;

        DisplayMap *ann2 = [[DisplayMap alloc] init]; 
    ann2.title = @"Hungary";
    ann2.subtitle = @""; 
    ann2.coordinate = region2.center;

        MKCoordinateRegion region3 = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
    region3.center.latitude = 45.943161 ;
    region3.center.longitude = 24.96676;
    region3.span.longitudeDelta = 0.01f;
    region3.span.latitudeDelta = 0.01f;
    [mapView addAnnotation:ann2];
    region2.span.latitudeDelta = 0.01f;

        DisplayMap *ann3 = [[DisplayMap alloc] init]; 
    ann3.title = @"Romania";
    ann3.subtitle = @""; 
    ann3.coordinate = region3.center;
    [mapView addAnnotation:ann3];

        CLLocationCoordinate2D mapCoords[4];

    mapCoords[0].latitude  = 51.165691;
    mapCoords[0].longitude = 10.451526;
    mapCoords[1].latitude  = 47.516231;
    mapCoords[1].longitude = 14.550072;
    mapCoords[2].latitude  = 47.162494;
    mapCoords[2].longitude = 19.503304;
    mapCoords[3].latitude  = 45.943161;
    mapCoords[3].longitude = 24.96676;

       MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:mapCoords count:4];
    [self.mapView insertOverlay:polyLine atIndex:0];}
-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:
 (id <MKAnnotation>)annotation {
    MKPinAnnotationView *pinView = nil; 
    if(annotation != mapView.userLocation) 
    {
        static NSString *defaultPinID = @"com.invasivecode.pin";
        pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if ( pinView == nil ) 
            pinView = [[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];
        pinView.pinColor = MKPinAnnotationColorRed; 
        pinView.canShowCallout = YES;
        pinView.animatesDrop = YES;

        NSString *pintitle=[NSString stringWithFormat:@"%@",((MKPinAnnotationView*) pinView).annotation.title];



                if (![arr_temp containsObject:pintitle]) {

                    [arr_temp addObject:pintitle];

                    for(NSString*str in [final_arr valueForKey:@"city"]) {
                        if ([pintitle isEqualToString:str]) {

                            [final_arr_add addObject:[final_arr objectAtIndex:g]];

                UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeCustom];
                [infoButton setFrame:CGRectMake(pinView.bounds.size.width-35,10,25, 27)];
                [infoButton setImage:[UIImage imageNamed:@"DDOrange.png"] forState:UIControlStateNormal];
                pinView.rightCalloutAccessoryView = infoButton;
                infoButton.tag = g;
                g++;
                [infoButton addTarget:self action:@selector(ButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
                }
            }

        }



        } 
    else {
        [mapView.userLocation setTitle:@"I am here"];
    }
    return pinView;
}

-(void)ButtonPressed:(id)sender
{
    UIButton *btn = (UIButton*)sender;
    NSLog(@"%d",btn.tag);

    NSLog(@"%@",[arr objectAtIndex:btn.tag]);


    mapdetail *obj_mapDetail = [[mapdetail alloc]init];

    [obj_mapDetail setArray:[final_arr_add objectAtIndex:btn.tag]];

    [self.navigationController pushViewController:obj_mapDetail animated:YES];
}

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {

    MKPolylineView *overlayView = nil;

    if (nil == overlayView) {

        overlayView = [[[MKPolylineView alloc] initWithOverlay:overlay] autorelease];

        overlayView.strokeColor = [UIColor blueColor];
        overlayView.lineWidth   = 5.0;

    }

    return overlayView;
}

In mapdetail.h

@interface mapdetail : UIViewController {

    NSMutableArray *myArr;

}

-(void)setArray:(NSMutableArray*)arr;

@end

IN mapdetail.m

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"%@",myArr);
}

-(void)setArray:(NSMutableArray*)arr
{
    myArr = arr;
}

Ads

View Answers

January 9, 2012 at 12:23 PM


??










Tutorials   
Java Spring Hibernate Struts Training How to uninstall old version of Android Studio? How to install cocoapods in Max? item lookup How to get path of a file in iOS? [NSConcreteMutableData release]: message sent to deallocated instance Covert Bool to String - NSString Getting UIButton by Tag How to write Example code for comparing Strings in iPhone SDK? How to set placeholder in uitextfield programmatically? Example code of adding placeholder in UItextFeild how to get UIView by tag J2me image use ase smiley UILineBreakModeWordWrap is deprecated Framework for Mobile Applications How to print UIButton id System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h' has been modified since the precompiled header UINavigationController Navigating to back uinavigationcontroller add right button UINavigationController how to set title uitextfield hide keyboard on return dismissmodalviewcontrolleranimated first deprecated in ios 6.0 xcode 6.1.1 download How to remove virtual keypad from apps java How to remove virtual keypad from apps java How to remove virtual keypad from apps java code to send sms alerts using jsp online iphone app development how to devlop mobile application? What is WAP? download mp3 file on server in iphone home button macbook pro keyboard calling from iphone through programitically in iphone How to retrieve a field from SQLite to Edittext in android How to retrieve a field from SQLite to Edittext in android Sqlite3 Why NSMutableDictionary ios work with nsdictionary what is class methods in objective c what is class methods in objective c UIButton HOW TO FIND OUT GPS COORDINATES WITHOUT USING ONLINE DATABASE OR OTHERTHING ON MOBILE HOW TO FIND OUT GPS COORDINATES WITHOUT USING ONLINE DATABASE OR OTHERTHING ON MOBILE HOW TO FIND OUT GPS COORDINATES WITHOUT USING ONLINE DATABASE OR OTHERTHING ON MOBILE Rad Calculator ANDROID J2ME Bar graph j2me image application iphone iphone

Ads

 
Advertisement null

Ads