• 地图划线


    #import "ViewController.h"
    #import <CoreLocation/CoreLocation.h>
    #import <MapKit/MapKit.h>
    
    
    
    @interface ViewController ()<MKMapViewDelegate>
    
    @property(nonatomic ,strong)MKMapView * map;
    
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        MKMapView * map = [[MKMapView alloc]initWithFrame:self.view.bounds];
      
        self.map = map;
        
        self.map.delegate = self;
        
        [self.view addSubview:map];
        
        
        
        CLGeocoder * geoCode = [[CLGeocoder alloc]init];
        
        [geoCode geocodeAddressString:@"北京" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
            
            //通过coreLocation 的CLPlacemark 获取地面 装换为MKPlacemark
            
            MKPlacemark * place1 = [[MKPlacemark alloc]initWithPlacemark:[placemarks firstObject]];
        
            
            [geoCode geocodeAddressString:@"武汉" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
                
                MKPlacemark * place2 = [[MKPlacemark alloc]initWithPlacemark:[placemarks firstObject]];
                
                //创建方向请求
                MKDirectionsRequest * request = [[MKDirectionsRequest alloc]init];
                
                request.source = [[MKMapItem alloc]initWithPlacemark:place1];
                
                request.destination = [[MKMapItem alloc]initWithPlacemark:place2];
                
                //创建方向对象
                MKDirections * direction = [[MKDirections alloc]initWithRequest:request];
                
                //计算方向 添加蒙版 也就是划线
                 [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) {
                     
                     for (MKRoute * route in response.routes) {
                         
                         [self.map addOverlay:route.polyline];
             
                     }
                     
                     
                 }];
                
                
      
            }];
        }];
    
    }
    
    
    //当添加折线时,调用 , 返回一个折线渲染器
    -(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
    {
        
        MKPolylineRenderer * polylineRenderer = [[MKPolylineRenderer alloc]initWithPolyline:overlay];
        
        polylineRenderer.lineWidth = 2;
        
        polylineRenderer.strokeColor = [UIColor orangeColor];
        
        return polylineRenderer;
        
        
    }
    

      

  • 相关阅读:
    Android Studio快速导入项目
    梦断代码阅读笔记01
    Python词云生成
    Python 数据处理
    Android studio 自定义Dialog
    Android studio Activity的跳转和数据传递
    Android studio Handler消息处理2
    2.9 react组件中使用key作为prop属性命名报错
    2.3 上下margin值合并
    2.2 快速认识虚拟dom
  • 原文地址:https://www.cnblogs.com/yuwei0911/p/5442401.html
Copyright © 2020-2023  润新知