- (void)viewDidLoad
{
self.mapView.delegate = self;
CLLocationCoordinate2D centerPort = {45.748637,126.699891};
MKCoordinateSpan coordinateSpin = MKCoordinateSpanMake(0.05, 0.05);
MKCoordinateRegion coordinateRegion = MKCoordinateRegionMake(centerPort, coordinateSpin);
[self.mapView setRegion:coordinateRegion];
[self.mapView regionThatFits:coordinateRegion];
CLLocationCoordinate2D redRocksAmphitheatre = CLLocationCoordinate2DMake(45.748637, 126.699891);
MKPlacemark * redRocksPlacemark = [[MKPlacemark alloc]initWithCoordinate:redRocksAmphitheatre addressDictionary:nil];
MKMapItem *redRocksItem = [[MKMapItem alloc]initWithPlacemark:redRocksPlacemark];
redRocksItem.name = @"red rocks";
CLLocationCoordinate2D sportsAuthorityField = CLLocationCoordinate2DMake(45.747747, 126.658671);
MKPlacemark * sportsAuthorityPlacemark = [[MKPlacemark alloc]initWithCoordinate:sportsAuthorityField addressDictionary:nil];
MKMapItem * sportsAuthorityItem = [[MKMapItem alloc]initWithPlacemark:sportsAuthorityPlacemark];
sportsAuthorityItem.name = @"sports authority";
[self findDirectionsFrom:redRocksItem to:sportsAuthorityItem];
[super viewDidLoad];
}
-(void)findDirectionsFrom:(MKMapItem *)sources to:(MKMapItem*)destination
{
MKDirectionsRequest *request = [[MKDirectionsRequest alloc]init];
request.source = sources;
request.destination = destination;
request.requestsAlternateRoutes = NO;
MKDirections *directions = [[MKDirections alloc]initWithRequest:request];
[directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response,NSError *error)
{
if (error)
{
NSLog(@"we get an error %@",error);
}
else
{
[self showDirectionsOnMap:response];
}
}];
}
-(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolyline class]])
{
MKPolylineRenderer *renderer = [[ MKPolylineRenderer alloc]initWithOverlay:overlay ];
renderer.lineWidth = 3;
renderer.strokeColor = [UIColor redColor];
return renderer;
}
else
{
return nil;
}
}
-(void)showDirectionsOnMap :(MKDirectionsResponse *)respones
{
self.respones = respones;
for (MKRoute * route in self.respones.routes) {
[self.mapView addOverlay:route.polyline level:MKOverlayLevelAboveRoads];
}
[self.mapView addAnnotation:self.respones.source.placemark];
[self.mapView addAnnotation:self.respones.destination.placemark];
}