zoukankan      html  css  js  c++  java
  • 地图划线

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

      

  • 相关阅读:
    解决chrome浏览器自动填充密码
    linux top命令详解
    经纬度互换、换算成米、两点的经纬度计算两点间的距离
    js 调用声音提示
    centos7 kdump.service启动失败的解决方法
    Postman 工具模拟Ajax请求
    CentOs7 安装最新版的Git
    Nginx日志切割之Logrotate篇
    mysql让主键id重新排序
    阿里云大文件解压函数计算
  • 原文地址:https://www.cnblogs.com/yuwei0911/p/5442401.html
Copyright © 2011-2022 走看看