MapKit框架是用来显示世界地图的框架,其中大部分的功能由MKMapView类提供,它的实例负责显示地图、跟踪触摸屏幕的动作并显示标注等等。常用的对象有:
MKMapView对象,负责显示地图和已经记录位置的标签。
MKAnnotationView实例若干,用户触摸屏幕的话他们会以图标注解的形式出现在地图上。
在加载地图数据的时候,你还可以显示一个加载数据的动画,一个UIActivityIndicatorView对象,提示用户设备正在工作,并没有停滞。下面是一些常用方法:
1.地图对象的显示类型可以用MKMapType来设置,参数主要有三种:
分别是标准模式,卫星模式和混合模式。
2.可以在你加载MapView对象的Controller中的viewDidLoad方法中让位置信息显示出来:
[self.mapView setShowsUserLocation: YES];
3.还有许多功能需要方法实现,所以要设置委托,MKMapView对象有delegate属性,可以将其指向Controller对象。声明遵守MKMapViewDelegate协议。
在获取位置后需要根据设备当前的位置来放大地图,总不能在世界地图上显示用户的位置吧- -,于是就需要下面这个方法:
CLLocationCoordinate2D是用来表示经纬度坐标的结构体,在表示放大区域的MKCoordinateRegion中主要有两个成员,一个是CLLocationCoordinate2D表示的中心点,另外一个是MKCoordinateSpan,用来描述放大或缩小的程度,我这里是设置的周围250m。
4.MKAnnotation来标注地点
相应的协议是MKAnnotation协议。
标注地点的View中必需的属性是CLLocationCoordinate2D(nonatomic, readonly),还有可选的,比如你在点标注的时候标注会显示个标题title等等。
5.UIActivityIndicator
在加载地图数据的时候发送startAnimating消息;
加载结束要显示地图具体位置时候发送stopAnimating消息。
最后说点题外话,上篇文章被VeryDemo抓走了,这个随意抓取人文章的网站最近貌似很火,不会被K吗?