将起点和终点, 传递给系统地图, 利用系统APP, 进行导航

作品链接:http://www.jianshu.com/users/1e0f5e6f73f6/top_articles

1.导入<MapKit/MapKit.h>

2.懒加载

@property (nonatomic, strong) CLGeocoder *geoC;
- (CLGeocoder *)geoC
{
    if (!_geoC) {
        _geoC = [[CLGeocoder alloc] init];
    }
    return _geoC;
}

3.将起点和终点, 传递给系统地图

- (void)beginNavWithBpl:(CLPlacemark *)beginP andEndP:(CLPlacemark *)endP
{
    //创建开始的地图项
    CLPlacemark *clpB = beginP;
    MKPlacemark *mkPB = [[MKPlacemark alloc] initWithPlacemark:clpB];
    MKMapItem *beginI = [[MKMapItem alloc] initWithPlacemark:mkPB];
    
    //创建结束的地图项
    CLPlacemark *clp = endP;
    MKPlacemark *mkP = [[MKPlacemark alloc] initWithPlacemark:clp];
    MKMapItem *endI = [[MKMapItem alloc] initWithPlacemark:mkP];
    
    //地图项数组
    NSArray *items = @[beginI,endI];
    //启动字典
    NSDictionary *dict = @{
                           //导航方式
                           MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeKey,
                           //地图类型
                           MKLaunchOptionsMapTypeKey:@(MKMapTypeHybrid),
                           //是否显示交通
                           MKLaunchOptionsShowsTrafficKey:@(YES)
                           
                           };
    [MKMapItem openMapsWithItems:items launchOptions:dict];
    
}

4.利用系统APP, 进行导航

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
   [self.geoC geocodeAddressString:@"昆明" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        // 昆明地标
        CLPlacemark *kmP = [placemarks firstObject];
        [self.geoC geocodeAddressString:@"郑州" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
            // 郑州地标
            CLPlacemark *zzP = [placemarks firstObject];
            [self beginNavWithBpl:kmP andEndP:zzP];
        }];
    }];

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,282评论 25 708
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,106评论 8 183
  • *初学地图时,觉得地图是个很高深的玩意儿,导航、定位、检索这得运用多少算法和核心动画的知识点啊,于是一直排斥 * ...
    柳骏阅读 3,900评论 11 22
  • 暑假生活转眼间就结束了,我的暑假生活很充实,点点滴滴的趣事让我的暑假变成了一幅五彩缤纷的水彩画!下面我就和大家分享...
    尚轩宇暑假点滴阅读 312评论 0 0
  • 材料: 素芝士/素黄油 面粉 水/豆浆 罗勒/迷迭香 香菜(博主是资深香菜爱好者,不喜欢香菜的自动忽略) 盐 黑胡...
    vegan素食俱乐部阅读 276评论 0 0