地图篇-05.导航
Posted 二毛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了地图篇-05.导航相关的知识,希望对你有一定的参考价值。
地图篇-05.导航
上一节讲了大头针的一些知识,这节来讲讲导航,这个非常简单
步骤: 1.获取用户输入的地址
2.创建目的地在地图上的点
3.创建当前位置在地图上的点
4.调用系统自带的地图App导航
代码前准备:
拖入上图中三个控件,并且脱线到ViewController.m中
然后上代码:
1 // 2 // ViewController.m 3 // 05.导航 4 // 5 // Created by admin on 16/5/31. 6 // Copyright © 2016年 KXZDJ. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 //导入头文件 11 #import <MapKit/MapKit.h> 12 13 @interface ViewController () 14 @property (weak, nonatomic) IBOutlet UITextField *destinationFiled; 15 16 @end 17 18 @implementation ViewController 19 - (IBAction)navigation:(id)sender { 20 21 //1.获取用户输入的位置 22 NSString *address = self.destinationFiled.text; 23 //判断 24 if (address.length == 0) { 25 NSLog(@"请输入目的地"); 26 return; 27 } 28 29 //2.创建目的地在地图上的点 30 CLGeocoder *geo = [[CLGeocoder alloc] init]; 31 32 //地理编码 33 [geo geocodeAddressString:address completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) { 34 35 if (placemarks.count == 0 || error) { 36 NSLog(@"地理编码失败"); 37 return ; 38 } 39 //获取到placemarks中的一个元素(这里可能返回多个地标,但是我们只随便取一个,重点不在这里) 40 CLPlacemark *clp = [placemarks lastObject]; 41 42 //这里需要一个CLPlacemark的参数,那么这个参数在前面地理编码的时候用到过,同样创建一个,但是这里需要地理编码才能获取到placemarks以上是关于地图篇-05.导航的主要内容,如果未能解决你的问题,请参考以下文章