美文网首页
iOS10新特性, 地图默认导航模式

iOS10新特性, 地图默认导航模式

作者: 黑歷史 | 来源:发表于2016-08-20 15:21 被阅读0次

首先需要在项目中导入MapKit

#import <MapKit/MapKit.h>

界面如下

01.png
获取'终点位置'
02.png

获取 ‘起点位置’, 进入MKMapItem.h文件可以看到有一个类方法(mapItemForCurrentLocation)直接获取用户当前位置, 注: 模拟器当中无法获取真实地址的, 需要在模拟器菜单点击Debug -> Location -> Custom Location设置

03.png

设置'起点位置'和'终点位置', launchOptions参数先设置nil, 调用系统自带的 地图app 进行导航,

04.png

此时运行程序, 需要手动点击'目的地'才会去规划路线

05.png

再次进入MKMapItem.h文件, 可以看到iOS10新增了一个导航模式:
MKLaunchOptionsDirectionsModeDefault

06.png

设置launchOptions

07.png
再次运行程序, 输入'目的地', 点击'开始导航', 系统调用自带地图时就会会选择最优路线 08.png

源码

 - (IBAction)navigateClick:(id)sender {
    /**
     地图导航的实现思路:
     需要知道起点和终点位置
     
     终点位置的获取 --> 地理编码
     起点位置的获取 --> MKMapItem 有一个类方法可以直接获取用户当前位置
     */
    
    // 1. 创建地理编码对象
    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    
    // 2. 实现地理编码方法
    [geocoder geocodeAddressString:self.addressTF.text completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        
        // 3. 获取最后一个地标对象 --> 创建MKPlacemark对象
        MKPlacemark *mkPlacemark = [[MKPlacemark alloc] initWithPlacemark:placemarks.lastObject];
        
        // 4. 根据MKPlacemark对象来创建目的地所在的MKMapItem对象
        MKMapItem *destinationItem = [[MKMapItem alloc] initWithPlacemark:mkPlacemark];
        
        // 5. 获取起点位置
        MKMapItem *sourceItem = [MKMapItem mapItemForCurrentLocation];
        
        // 6. 调用open方法, 打开系统自带地图进行导航
        // MKMapItem: 表示地图上的一个点的对象
        NSDictionary *launchOptions = @{MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDefault};
        [MKMapItem openMapsWithItems:@[sourceItem, destinationItem] launchOptions:launchOptions];
    }];
}

相关文章

  • iOS10新特性, 地图默认导航模式

    首先需要在项目中导入MapKit 界面如下 获取 ‘起点位置’, 进入MKMapItem.h文件可以看到有一个类方...

  • iOS9、iOS10新特性

    iOS10新特性、iOS9新特性

  • iOS10新特性整理

    apple关于iOS10新特性介绍 iOS10新特性个人总结iOS9.3~iOS10 API的变化 (OC 加入:...

  • App界面适配iOS11(包括iPhoneX的奇葩尺寸)

    搞事一:导航栏1.导航栏高度变化导航栏在iOS10之前都是默认的64p,但是,到了iOS10就不单单是64p了,可...

  • 自定义模式切换

    描述 ALE中,地图定位模式包括普通导览模式、普通定位模式、普通指向模式、导航模式、导航指向模式、导航导览模式。模...

  • 拨打电话的三种方法

    iOS10 新特性 拨打电话三种方法:

  • php版本特性

    [doc] 一、PHP 7 新特性 1.1标量类型声明 标量类型声明有两种模式: 强制 (默认) 和 严格模式强制...

  • ios10新特性-UserNotification

    ios10新特性-UserNotification 引言:iOS的通知分本地通知和远程通知,iOS10之前采用的是...

  • jeecg更改顶部导航栏

    jeecg boot中的导航模式默认设置为侧边栏导航,若需要更改为默认顶部导航,只要修改几个单词即可。 *注意: ...

  • 严格模式

    为什么要使用严格模式 javascript未来的新特性会默认使用严格模式。严格模式可以降低出现莫名其妙的错误的出现...

网友评论

      本文标题:iOS10新特性, 地图默认导航模式

      本文链接:https://www.haomeiwen.com/subject/otibsttx.html