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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值