码迷,mamicode.com
首页 > 移动开发 > 详细

iOS地图导航仪的实现

时间:2015-06-14 00:45:36      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

                                              第一部分 知识储备

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)

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


                          技术分享

 

                                    第三部分 UI界面搭建

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

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

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

@property(nonatomic,strong) MKPolyline* navigationPath;

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

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

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

技术分享


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

技术分享


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

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

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

                                   第六部分 编写代码

代码截图如下:

        技术分享

         技术分享

         技术分享  

       技术分享

                                              第七部分 程序截图

技术分享

技术分享

技术分享

技术分享

技术分享

iOS地图导航仪的实现

标签:

原文地址:http://my.oschina.net/iOSliuhui/blog/466462

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!