IOS中mapKit的应用

来源:互联网 发布:手机捏人软件 编辑:程序博客网 时间:2024/06/06 01:19
一、IOS中MKMapItem和 MKPlaceMark类的使用

1.     iOS6以后谷歌抛弃了使用google地图,改变为使用自己的地图。MapKit自然也就做了相应的改变。当我们需要打开一个地图时,就需要用到MKMapItem,在初始化的时候传入一个MKPlacemark类型的数据,即可将地图在打开时定位到具体的某个位置。如下代码:



2.     CLGeocoder用于实现将一个文本类型的地址信息(XX街 XX州)转化成一个地理坐标(longitude and latitude coordinates 



二、Core Location Framework的使用。在这个框架包括两个重要的类CLLocationManager和CLLocation
1.     CLLocationManager




2.     CLLocation  包含5个属性
          latitude:CLLocationDegree类型
          longitude:CLLocationDegree类型

          Horizontal Accuray:CLLocationAccuray类型
          vertical Accuray:CLLocationAccury类型

          Altitude(海拔):CLLocationDistance类型


3.     计算连个CLLocation之间的距离



三、MapKit的使用
项目中使用MapKit导入地图需要导入MapKit包,导包过程在此省略。
1.     新建工程命名为MapSample。在main.storybord中拖拽添加一个mapView,一个toolbar 和两个barbutton(注意:在使用自动布局时,如果想要mapView占整个手机宽度,不能只是通过set suggest constraint,这样如果不设置默认宽度,在运行时就不会显示对应的view,这时的宽度为0).
                 
2.     通过 Ctrl+arlt拖拽空间在viewController省城对应的属性和方法。同时该ViewContriller需实现MKMapViewDelegate协议,这样才可以在这个类中写各种mapView的协议方法,如 mapView: didUploadUserLocation

这时如果点击运行,就会在手机上显示出地图。

3.     在viewContriller的viewDidLoad方法中设置userLocation以及设置代理类

4.     实现各个点击事件
实现点击Zoom的事件

实现changeMapType的点击事件

5.     下面是一个MKMapViewDelegate的代理方法,在这个方法中更新map的centerCoordinate为user location的coordinate。


6下面实现搜索功能。首先给textField添加did end and exit事件(即对应如键盘点击return的事件)textFieldReturn。具体实现如下:

在上述代码中调用管的performSearch方法(在这个方法中就是根据文本输入的内容搜索制定区域内相关的节点,并添加到map中进行展示):


下面点击运行展示效果:

 
0 0
原创粉丝点击