iOS 硬件 导航 - 系统请求数据 绘制路线

来源:互联网 发布:域名可以干嘛 编辑:程序博客网 时间:2024/06/05 04:36

关键词 ==  MKDirections

1.MKDirections*direction = [[MKDirectionsalloc]initWithRequest:request];

2.  MKDirectionsRequest *request = [[MKDirectionsRequestalloc]init];

  request.source request.destination === MKMapItem == MKPlacemark == CLPlaceMark == 地理编码


3.数据获得和处理

[directioncalculateDirectionsWithCompletionHandler:^(MKDirectionsResponse* _Nullable response,NSError* _Nullable error) {

        [response.
routesenumerateObjectsUsingBlock:^(MKRoute* _Nonnull obj, NSUInteger idx,BOOL* _Nonnull stop) {

           
NSLog(@"%@",obj.name);

           
NSLog(@"%f",obj.distance);

           
NSLog(@"%@",obj.polyline);

           MKPolyline *polyline = obj.polyline;   //划线

            [self.tapViewaddOverlay:polyline]; //代理

                          [obj.stepsenumerateObjectsUsingBlock:^(MKRouteStep* _Nonnull obj, NSUInteger idx,BOOL* _Nonnull stop) {

               
MKPolyline *polyline =  obj.polyline;

                [
self.tapViewaddOverlay:polyline];
            }];

        }];
    }];


#pragma -mark起点 终点 圆圈


   
MKCircle *sourceCircle = [MKCirclecircleWithCenterCoordinate:sourceCLPm.location.coordinateradius:30];

    [
self.tapViewaddOverlay:sourceCircle];

   
MKCircle *destinationCircle = [MKCirclecircleWithCenterCoordinate:destinationCLPm.location.coordinateradius:30];

    [self.tapViewaddOverlay:destinationCircle];


4划线  代理 协议


#pragma -mark绘制

- (
MKOverlayRenderer*)mapView:(MKMapView*)mapView rendererForOverlay:(id<MKOverlay>)overlay{

   
if([overlay isKindOfClass:[MKPolylineclass]]){

       
MKPolylineRenderer *polylineRender = [[MKPolylineRendereralloc]initWithOverlay:overlay];

        polylineRender.
lineWidth= 2;

        polylineRender.
strokeColor= [UIColorredColor];

       
return polylineRender;
    }

   
if([overlay isKindOfClass:[MKCircleclass]]){

       
MKCircleRenderer *circle = [[MKCircleRendereralloc]initWithCircle:overlay];

        circle.
lineWidth= 2;

        circle.
strokeColor= [UIColorcyanColor];

       returncircle;
    }

   
return nil;
}



 
0 0
原创粉丝点击