Hi Readers!
Below is the code to launch the Apple Maps application and display the directions between 2 points on Map.
Example 1: Display directions
MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(42.313432,-71.057157) addressDictionary:nil];
MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:placemark];
item.name = @"Boston";
MKPlacemark *placemark1 = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(35.843871,-78.645056) addressDictionary:nil];
MKMapItem *item1 = [[MKMapItem alloc] initWithPlacemark:placemark1];
item1.name = @"Raleigh";
NSDictionary *options = @{
MKLaunchOptionsDirectionsModeKey:
MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsMapTypeKey:
[NSNumber numberWithInteger:MKMapTypeSatellite],
MKLaunchOptionsShowsTrafficKey:@YES
};
NSArray *arr = [NSArray arrayWithObjects:item,item1, nil];
[MKMapItem openMapsWithItems:arr launchOptions:options];
Here is the screenshot of Apple Maps App:
You can change the parameters in the launch dictionary and have different results. If you pass nil then it will display the pins on map.
Example 2: Display only annotations on map
MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(42.313432,-71.057157) addressDictionary:nil];
MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:placemark];
item.name = @"Boston";
MKPlacemark *placemark1 = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(35.843871,-78.645056) addressDictionary:nil];
MKMapItem *item1 = [[MKMapItem alloc] initWithPlacemark:placemark1];
item1.name = @"Raleigh";
NSDictionary *options = @{
MKLaunchOptionsMapTypeKey:[NSNumber numberWithInteger:MKMapTypeStandard],
};
NSArray *arr = [NSArray arrayWithObjects:item,item1, nil];
[MKMapItem openMapsWithItems:arr launchOptions:options];
Screenshot:
0 Comment(s)