Mapkit框架:1-MKMapView简介
CoreLocation框架能够获取经纬度信息,但是实际的App中,使用更加普遍的是地理位置与地图的结合应用,例如我们常见的打车软件,可以在地图上实时显示用户当前的位置,而地理位置与地图的综合应用需要使用到MapKit框架。
MKMapView简介
在MapKit框架中,最重要的一个类就是MKMapView类。MKMapView类可以为用户提供一个展示地图的界面,程序员可以在地图上进行进一步的功能定制。在MKMapView类中,有如下一些比较常用的属性和方法。
- 设置地图的展示类型。在MKMapView中提供了三种地图展示的方式,分别为MKMapTypeStandard(标准图)、MKMapTypeSatellite(卫星图)、MKMapTypeHybrid(混合图),我们最常用的是MKMapTypeStandard(标准图)。
@property (nonatomic) MKMapType mapType;
- 当前地图的中心坐标。通常情况下,我们可以获取用户的当前位置,并且赋值给centerCoordinate属性。
@property (nonatomic) CLLocationCoordinate2D centerCoordinate;
- 设置显示区域的范围。
@property (nonatomic) MKCoordinateRegion region;
- 设置MKMapView的代理对象,MKMapView的代理对象需要遵守MKMapViewDelegate协议。
@property (nonatomic, weak, nullable) id <MKMapViewDelegate> delegate;
- 设置地图是否可缩放,默认可缩放。
@property (nonatomic, getter=isZoomEnabled) BOOL zoomEnabled;
- 用户追踪模式。
@property (nonatomic) MKUserTrackingMode userTrackingMode;
- 获取的用户的位置坐标。MKUserLocation类中提供了一个CLLocation类型的属性location,可以用户获取用户的位置信息。
@property (nonatomic, readonly) MKUserLocation *userLocation;
- 是否显示交通情况。
@property (nonatomic) BOOL showsTraffic;
- 是否显示比例尺。
@property (nonatomic) BOOL showsScale;
- 是否显示指南针。
@property (nonatomic) BOOL showsCompass;
MKMapViewDelegate代理协议
MKMapView中定义了MKMapViewDelegate代理协议,在该代理协议中提供了用于监测MKMapView加载过程的方法。
- 地图即将开始加载时调用。
- (void) mapViewWillStartLoadingMap:(MKMapView *)mapView;
- 地图加载完毕后调用。
-(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView;
- 地图加载失败调用。
- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error;
- 用户位置更新时调用,该方法调用非常频繁,可以不断监测用户的当前位置,通过其提供的userLocation参数,我们可以获取到用户的最新位置信息。
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation;
- 地图的显示的区域即将发生改变的时候调用。
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
- 地图的显示区域已经发生改变的时候调用。
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
- 自定义“大头针”样式。
- (nullable MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation;
文章发布时间为: December 11th , 2016 at 09:55 pm
最后编辑时间为: September 15th , 2017 at 08:11 am
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 15th , 2017 at 08:11 am
本文由 99ios 创作,转载请注明出处