IOS自带地图中,小知识点总结

来源:互联网 发布:a卡优化的单机游戏 编辑:程序博客网 时间:2024/05/20 08:01
    CLGeocoder *geo = [[CLGeocoder alloc] init];
    
    [geo geocodeAddressString:self.destinationField.text completionHandler:^(NSArray *placemarks, NSError *error) {
        
        if (placemarks == 0 || error) {
            NSLog(@"地理编码失败");
            return ;
        }
        
        
        //1.创建一个线路请求
        MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];

        
        CLPlacemark *clp = [placemarks firstObject];
        
        
        MKPlacemark *mkp = [[MKPlacemark alloc] initWithPlacemark:clp];
        
        MKMapItem *destinationItem = [[MKMapItem alloc] initWithPlacemark:mkp];
        
        
        //2.设置源点和目的地点
        
        MKMapItem *currentItem = [MKMapItem mapItemForCurrentLocation];
        
        
        
        
        request.source = currentItem;
        
        request.destination = destinationItem;
        
        //3.创建一个线路管理器
        MKDirections *direction = [[MKDirections alloc] initWithRequest:request];
        
        
        //4.算路
        [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
            
            
            if (response.routes.count == 0) {
                NSLog(@"没有请求到路");
                return ;
            }
            
            for (MKRoute *route in response.routes) {
                
                
                NSLog(@"%@",route.name);
                
                //获取能画在地图上的线段
                MKPolyline *line = route.polyline;
                
                //将线段添加在地图上
                [self.mapView addOverlay:line];
                
            }
            
            
            
            
        }];
        
        
    }];

0 0
原创粉丝点击