ios Map 开发笔记 四 导航画线

来源:互联网 发布:女生发型 知乎 编辑:程序博客网 时间:2024/05/02 05:03

- (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 = [[MKPlacemarkalloc]initWithCoordinate:redRocksAmphitheatreaddressDictionary:nil];

    MKMapItem *redRocksItem = [[MKMapItemalloc]initWithPlacemark:redRocksPlacemark];

    redRocksItem.name = @"red  rocks";

    CLLocationCoordinate2D sportsAuthorityField =CLLocationCoordinate2DMake(45.747747,126.658671);

    MKPlacemark * sportsAuthorityPlacemark = [[MKPlacemarkalloc]initWithCoordinate:sportsAuthorityFieldaddressDictionary:nil];

    MKMapItem * sportsAuthorityItem = [[MKMapItemalloc]initWithPlacemark:sportsAuthorityPlacemark];

    sportsAuthorityItem.name = @"sports  authority";

    

    [self findDirectionsFrom:redRocksItemto:sportsAuthorityItem];

    [superviewDidLoad];

    

}

-(void)findDirectionsFrom:(MKMapItem *)sources to:(MKMapItem*)destination

{

    MKDirectionsRequest *request = [[MKDirectionsRequestalloc]init];

    request.source = sources;

    request.destination = destination;

    request.requestsAlternateRoutes =NO;

    

    MKDirections *directions = [[MKDirectionsalloc]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 ([overlayisKindOfClass:[MKPolyline class]])

    {

        MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc]initWithOverlay:overlay  ];

        renderer.lineWidth = 3;

        renderer.strokeColor = [UIColorredColor];

        return renderer;

    }

    else

    {

        return nil;

    }


}

-(void)showDirectionsOnMap :(MKDirectionsResponse *)respones

{

    self.respones = respones;

    for (MKRoute  * route in self.respones.routes) {

        [self.mapViewaddOverlay:route.polyline level:MKOverlayLevelAboveRoads];

        

    }

    [self.mapViewaddAnnotation:self.respones.source.placemark];

    [self.mapViewaddAnnotation:self.respones.destination.placemark];

}

0 0
原创粉丝点击