iOS地图导航仪的实现

                                              第一部分 知识储备

1 根据地址定位

 苹果给开发者为地址解析提供了CLGeocode工具类,该工具类可以把用户输入的地址解析成经纬度,该方是:

-geocodeAddressString:destAddress completionHandler:^(NSArray *placemarks, NSError *error)   该方法将字符串地址解析,然后就可以得到对应的经纬度


2 MKMapView控件及相关属性


  <1 ios的MKMapView支持一下三种属性:

       MKMapTypeStandard = 0,标准

       MKMapTypeSatellite,卫星云图

       MKMapTypeHybrid,混合


  <2 三个布尔值类型的属性:zoomEnable缩放属性,rotateEnable旋转属性,scrollenable滚动属性

  <3 showUserLocation该属性可用来显示当前用户的位置

3 MKMapView的代理方法

    本程序会重写-mapView :rendererForOverly方法,它的返回值就是我们的导航路线。在这个方法用到了MKOverlay协议,用它来表示覆盖层。这里的画线就用了它的一个实现类:MkPolyLineRenderer,他代表的就是汽车行走的导航路线。而它由继承自MKOverLayRenderer.拥有填充色strokeColor和linewidth线宽这两个属性。其他属性,大家可以查看它的官方文档。

4 导航路线的获取

   <1 利用MKDiretionsRequest创建请求导航对象request,设置起始点。

   <2 设置目标点,用以创建的request初始化MKDirections.

   <3 调用MKDirection 的方法-calculateDirectiosWithCompletionHandler,获取导航路线

5  iOS地图常用英语词汇总结及其释义

   <1  CLLocation: 封装位置信息等(经纬度,海拔等)

   <2  CLPlacemark:用来表示一个详细的地点了,比如地点的名字,城市名,国家,街道,邮编等等

   <3 MKUserLocation: 用来封装地图上大头针位置信息(比如标题,子标题)

   <4 CLLocationDegrees:封装了纬度和精度的度数

   <5 CLLocationCoodinate2D:封装地理坐标(比如CLLocationDegrees latitude  CLLocationDegrees               longitude)

   <6 MkCoodinateSpan :表示跨度(经度跨度:CLLocationDegrees longitudedelta  纬度跨度 CLLocationDegrees latitude)

    <7MKCoodinateRegion : 区域(中心位置 CLLocationCoodinate2D center  区域跨度 MKCoodinateSpan span)

                             第二部分 程序实现思路(也就是伪代码)


                          iOS地图导航仪的实现_第1张图片

 

                                    第三部分 UI界面搭建

1 拖一个UItextField作为用户输入目的地的容器

2 拖一个MKMapView用来作为显示的地图

3 定义属性,用来保存导航路径

@property(nonatomic,strong) MKPolyline* navigationPath;

4 通过懒加载创建地址解析器

5 拖入一个按钮,用于实现用户的点击事件

6 UI界面搭建连线好如下图:

iOS地图导航仪的实现_第2张图片


                                  第四部分 对虚拟键盘的处理


                                  第五部分 对程序模拟器位置的处理

          有时当我们第二次进入程序的时候,发现模拟器上我们的位置没有显示出来,这就要求我们给模拟器一个位置。

选中模拟器————》调试————》位置————》自定位置————》输入你当前位置的经纬度————》选择“好”即可。

                                   第六部分 编写代码

代码截图如下:

        iOS地图导航仪的实现_第3张图片

         iOS地图导航仪的实现_第4张图片

         iOS地图导航仪的实现_第5张图片  

       iOS地图导航仪的实现_第6张图片

                                              第七部分 程序截图

iOS地图导航仪的实现_第7张图片

iOS地图导航仪的实现_第8张图片

iOS地图导航仪的实现_第9张图片

iOS地图导航仪的实现_第10张图片

iOS地图导航仪的实现_第11张图片

你可能感兴趣的:(iOS地图导航仪的实现)