ios Map 开发笔记 四 导航画线

- (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];

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值