码迷,mamicode.com
首页 > 移动开发 > 详细

IOS 8 使用系统自带导航

时间:2015-05-24 00:14:28      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

//
//  ViewController.m
//  APP自带导航
//
//  Created by wup on 15/5/23.
//  Copyright (c) 2015年 apple. All rights reserved.
//
#import "ViewController.h"
#import <MapKit/MapKit.h>
@interface ViewController ()
@property (nonatomic,strong)  CLGeocoder *geo;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
//    CLLocationManager *clmgr = [[CLLocationManager alloc] init];
//    [clmgr requestAlwaysAuthorization];
    
//    MKMapView *mv = [[MKMapView alloc] initWithFrame:self.view.bounds];
//    [self.view addSubview:mv];
    [self.geo  geocodeAddressString:@"丽江" completionHandler:^(NSArray *placemarks, NSError *error) {
      
        
      
         //获取到起点的MKplaceMark
        
        MKPlacemark *startPlace = [[MKPlacemark alloc] initWithPlacemark:[placemarks firstObject]];
        
        //等待获取到起点的placemarks之后在获取终点的placemarks,block回调延迟问题
        [self.geo  geocodeAddressString:@"北京" completionHandler:^(NSArray *placemarks, NSError *error) {
            
            /**
              获取到终点的MKplaceMark,MKPlaceMark 是ClPlaceMark的子类。
             */
            MKPlacemark *endPlace = [[MKPlacemark alloc] initWithPlacemark:[placemarks firstObject]];
            
            /**
             将MKPlaceMark转换成MKMapItem,这样可以放入到item这个数组中
 
             */
            MKMapItem *startItem = [[MKMapItem alloc ] initWithPlacemark:startPlace];
            MKMapItem *endItem = [[MKMapItem alloc ] initWithPlacemark:endPlace];
            
            NSArray *item = @[startItem ,endItem];
            
            //建立字典存储导航的相关参数
            NSMutableDictionary *md = [NSMutableDictionary dictionary];
            md[MKLaunchOptionsDirectionsModeKey] = MKLaunchOptionsDirectionsModeDriving;
            md[MKLaunchOptionsMapTypeKey] = [NSNumber numberWithInteger:MKMapTypeHybrid];
            
            
            
            
            /**
             *调用app自带导航,需要传入一个数组和一个字典,数组中放入MKMapItem,
             字典中放入对应键值
             
             MKLaunchOptionsDirectionsModeKey   开启导航模式
             MKLaunchOptionsMapTypeKey  地图模式
                                                 MKMapTypeStandard = 0,
                                                 MKMapTypeSatellite,
                                                 MKMapTypeHybrid
             
             // 导航模式
             MKLaunchOptionsDirectionsModeDriving 开车;
             MKLaunchOptionsDirectionsModeWalking 步行;
             */
#warning 其实所有的代码都是为了下面一句话,打开系统自带的高德地图然后执行某些动作,launchOptions里面的参数指定做哪些动作
            [MKMapItem openMapsWithItems:item launchOptions:md];
        }];
    }];
 
}
#pragma mark - 超级懒加载
-(CLGeocoder *)geo
{
    if (!_geo)
    {
        _geo = [[CLGeocoder alloc] init];
        
    }
    return  _geo;
}
@end


技术分享







IOS 8 使用系统自带导航

标签:

原文地址:http://my.oschina.net/wupengnash/blog/418973

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!