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


关键词 ==  MKDirections

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

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

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


3.数据获得和处理

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

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

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

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

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

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

            [self.tapView addOverlay:polyline];  // 代理

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

               
MKPolyline *polyline =  obj. polyline ;

                [
self . tapView addOverlay :polyline];
            }];

        }];
    }];


#pragma -mark 起点 终点 圆圈


   
MKCircle *sourceCircle = [ MKCircle circleWithCenterCoordinate :sourceCLPm. location . coordinate radius : 30 ];

    [
self . tapView addOverlay :sourceCircle];

   
MKCircle *destinationCircle = [ MKCircle circleWithCenterCoordinate :destinationCLPm. location . coordinate radius : 30 ];

    [self.tapView addOverlay:destinationCircle];


4划线  代理 协议


#pragma -mark 绘制

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

   
if ([overlay isKindOfClass :[ MKPolyline class ]]){

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

        polylineRender.
lineWidth = 2 ;

        polylineRender.
strokeColor = [ UIColor redColor ];

       
return polylineRender;
    }

   
if ([overlay isKindOfClass :[ MKCircle class ]]){

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

        circle.
lineWidth = 2 ;

        circle.
strokeColor = [ UIColor cyanColor ];

        return circle;
    }

   
return nil ;
}



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值