• 地图划线


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

      

  • 相关阅读:
    setCapture 适用范围
    移动web页面自动探测电话号码
    WEB页面JS实现一键拨号的电话拨打功能
    highcharts动态删除标示区
    【你不知道的JavaScript
    【你不知道的JavaScript
    【JavaScipt高级程序设计 第4版】第5章笔记 日期格式
    【JavaScipt高级程序设计 第4版】第6章笔记 Map Set
    【JavaScipt高级程序设计 第4版】第6章笔记 Array 集合引用类型
    【JavaScipt高级程序设计 第4版】第4章笔记
  • 原文地址:https://www.cnblogs.com/yuwei0911/p/5442401.html
Copyright © 2020-2023  润新知