地图篇-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.导航的主要内容,如果未能解决你的问题,请参考以下文章

算法篇:地图算法取经之路

算法篇:地图算法取经之路

百度地图API怎样制作多途经点的线路导航——驾车篇

iOS原生地图开发进阶——使用导航和附近兴趣点检索

基于百度地图sdk的地图app开发——导航和模拟导航

基于百度地图sdk的地图app开发——导航和模拟导航