在某些应用中可能会出现,我们输入某个位置,然后点击导航,会跳到苹果自带的地图中进行导航,这应该怎么做?

其实很简单,首先我们需要根据输入的地名进行地理编码,

调用方法去得到地标对象,然后去获取CLPlacemark,然后再创建MKPlacemark

然后去获取现在的地标和目的地的地标

最后再调用[MKMapItem的一个类方法openMapsWithItems,具体代码实现如下,其中startGuide是开始导航按钮被点击的监听方法

#import "ViewController.h"
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *TextField;@property (nonatomic ,strong)CLGeocoder *geocoder;@end@implementation ViewController
//懒加载编码对象-(CLGeocoder *)geocoder
{if(_geocoder==nil){_geocoder = [[CLGeocoder alloc]init];}return _geocoder;
}
- (IBAction)startGuide:(id)sender {//地理编码,根据地名去获取经纬度[self.geocoder geocodeAddressString:self.TextField.text completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks,NSError * _Nullable error) {//判断输入的内容有没有出错if(placemarks.count==0||error!=nil){return;}//遍历数组去选取数据,取最后一个地标CLPlacemark *placemark = placemarks.lastObject;//创建MKPlaceMark对象MKPlacemark * pmk = [[MKPlacemark alloc]initWithPlacemark:placemark];//获取现在的地标MKMapItem * currentItem = [MKMapItem mapItemForCurrentLocation];//获取目的的地标MKMapItem * item = [[MKMapItem alloc]initWithPlacemark:pmk];NSDictionary * dict = @{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,MKLaunchOptionsMapTypeKey:
@(MKMapTypeHybrid),MKLaunchOptionsShowsTrafficKey:@(YES)};//打开苹果自带地图的方法,这个open是类方法[MKMapItem openMapsWithItems:@[currentItem,item] launchOptions:dict];}];}

这里需要注意的是,如果我们在openMapsWithItems:@[currentItem,item] launchOptions:dict中的launchOptions中的参数传nil的话,自带的地图中出现的是这样子的

如果我们给openMapsWithItems的数组参数只设置一个目的地的话,显示是这么显示如下图所示,如果需要导航的话,需要我们自己去点击路线。

如果我们指定了附加参数的字典,有去设置MKLaunchOptionsDirectionsModeKey这个key的话就会有导航信息,如下图所示

我们还可以去设置是否显示交通情况就是通过MKLaunchOptionsShowsTrafficKey这个key来进行设置的,设置地图的显示类型则是通过MKLaunchOptionsMapTypeKey这个来设置的。

ios-跳转到苹果自带地图进行导航相关推荐

  1. ios开发中如何调用苹果自带地图导航

    前段时间一直在赶项目,在外包公司工作就是命苦,天天加班不说,工作都是和工期合同挂钩的,稍微逾期就有可能被扣奖金,不谈这些伤脑筋的事情了,让我们说说iOS开发中如何调用苹果手机自带的地图. 学习如逆水行 ...

  2. 解析 数据库 苹果自带地图

    首先把MJExtension 第三方文件拖入到工程里面 Model类和View类里面照常写东西 View里面用xib照常拖 然后在VC.m里面引入#import "AFNetworking/ ...

  3. swift中检测跳转苹果自带地图、高德地图、百度地图、腾讯地图

    首先申明,此文章是转载 我是闰土你是猹 博主的文章,觉得有用,就拿过来,确实不好找相关案例,特此记录一下!大家可以移步文章原地址:https://blog.csdn.net/qq_30932479/a ...

  4. IOS 苹果自带地图、百度地图、高德地图打开方式

    //手机自带地图 //当前位置 MKMapItem *mylocation = [MKMapItemmapItemForCurrentLocation]; //前面填写纬度 CLLocationCoo ...

  5. server.transfer 无法跳转页面_H5 腾讯地图无法导航

    uni-app 打包H5腾讯地图无法导航 前言: 最近几天用uni-app开发安卓和iOS应用,打包成APP安装包后,APP内做地图导航没有问题,APP内使用的是高德地图:但是打包成为H5页面后,运行 ...

  6. iOS 苹果自带地图需求开发——1

    在iOS开发的过程中,不可避免的要涉及到地图方面的需求,本人也刚刚实现了一些地图上面的需求所以整理了以下的一些实现方式. 1.实现景点(地点)的定位功能 比较简单 话不多说上代码 // 引入mapKi ...

  7. 苹果自带地图进行定位

    最近项目中遇到了关于地图定位的需求,考虑到用三方库的话项目会变大,还是用了官方自带的地图. 这是结果图: 一.CoreLocation.frame是iPhone SDK中用来检测用户位置的框架. 1. ...

  8. 苹果自带地图定位 经纬度

    1.创建导航 在导航上创建定位按钮 2.引入两个依赖库 一个是地图的 一个是定位的 在VC.m里面: 引入两个框架 地图和定位的框架 #import "ViewController.h&qu ...

  9. iOS22 地图定位- 苹果自带地图

    引入两个框架,编码写成属性,初始化后,传入一个经纬度之后,展示地图: #import <CoreLocation/CoreLocation.h> #import <MapKit/Ma ...

最新文章

  1. 如何监听Canvas上滚动条的出现或隐藏
  2. python在财务上的应用-利用python实现周期财务统计可视化
  3. SLB vs CLB
  4. Redis list(列表)
  5. LocalDB连接失败
  6. Undefined exploded archive location Tomcat之项目不能发布
  7. JSP文件中Java代码的几种形式(JSP脚本)
  8. 匿名函数自我调用_Python中的匿名函数及递归思想简析
  9. 6个座位办公室最佳位置_2021最佳动力艇大奖:6个类别29个入围名单揭晓
  10. 代码的抽象三原则【转载】
  11. 沿环形路径创建渐变画笔
  12. MySQL的InnoDB表如何设计主键索引-转自淘宝MySQL经典案例
  13. 一夜上手uni-app
  14. python 自动控制鼠标移动脚本
  15. python微博爬虫程序_基于Python的新浪微博爬虫程序设计与研究
  16. 电视html转vga没有声音,怎样才能让HDMI转VGA连接电视能播放声音?
  17. FANUC 工业机器人编程与联网
  18. 总结2020:5个月出版两本书,日更公众号是一种怎样的体验?
  19. uniapp 小程序端上传并压缩图片
  20. Linux进程管理(redhat 8.0)

热门文章

  1. 新产品常用的网络广告发布方法有哪些?
  2. PR(precision recall curve)曲线是什么?PR曲线如何绘制?为什么Precision和Recall是矛盾体、此消彼长?为什么提出F1指标?
  3. Calander 类的使用
  4. 微信小程序开发—— app.json
  5. 金蝶EAS DEP脚本(1)—— 基本概念
  6. win10电脑右击新建没有Word、Excel怎么办
  7. hive 中创建表的三种方式
  8. 【Android安全】Google Hardware-backed Keystore | SafetyNet | 远程证明Remote Attestation
  9. html div文字竖向显示,css怎么让文字竖着?
  10. LR参数化,参数化类型:Fille类型--参数分配与取值规律