UI(三十五)地图

地图:导入 #import

 1、介绍

 (1)导入框架 MapKit->MKMapView所有与地图相关的都是以“MK”开头

 (2)使用地图功能也需要使用定位服务(也需要开启定位服务、向用户申请授权)->需要一个CLLocation的对象向用户请求授权

 (3)功能

 《1》展示地图

 《2》展示用户所在的位置

 《3》添加标记(大头针、展示大头针上的内容)

 (4)IOS9.0之后改变(面试题)

 《1》可以显示交通情况

 《2》可以显示地图比例

 《3》可以显示罗盘

 2、使用

 (1)使用到的类

 《1》MKMapView:创建地图对象的类

 《2》MKUserLocation:显示用户大头针资料(大头针的数据模型 大头针上显示的内容是根据数据模型来决定的)

 《3》MKAnnotation:大头针数据资料 所有大头针模型的一个父类 不能直接使用 都是使用系统提供的子类、或者自定义大头针模型

 《4》MKPointAnnotation:大头针模型

 《5》MKAnnotationView:所有大头针控件的父类 可以直接使用

 《6》MKPinAnnotationView:大头针视图控件

 《7》MKCoordinateSpan:经纬度的跨度(比例,跨度越小显示的范围越小越精准)

 《8》MKCoordinateRegion:经纬度的范围

 设置用户所在位置的一个范围

 @property (nonatomic) MKCoordinateRegion region;

 - (void)setRegion:(MKCoordinateRegion)region animated:(BOOL)animated;

 设置用户在地图上为中心点、以用户的位置为地图的中心点

 - (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated

 设置地图样式 mapType :

 MKMapTypeStandard,标准

 MKMapTypeSatellite,卫星地图

 MKMapTypeHybrid,鸟瞰 混合

 ios9之后新增加的:

 MKMapTypeSatelliteFlyover,卫星地图的立体样式

 MKMapTypeHybridFlyover,鸟瞰地图的立体样式


 显示用户位置 showsUserLocation

 *使用地图显示用户位置的时候无法定位用户位置

 1、showsUserLocation未设置成YES

 2、未创建定位对象,向用户请求授权

 3、使用定位服务目的的描述与发送的请求不匹配或者未在iofo.plist中添加定位服务目的的描述

 4、用户未在设置里面开启定位服务


 设置跟踪用户的样式 userTrackingMode

MKUserTrackingModeNone 不跟踪

MKUserTrackingModeFollow 跟踪

MKUserTrackingModeFollowWithHeading 跟踪并且伴随航向


 BOOL类型的属性:

pitchEnabled 设置是否可以捏合

rotateEnabled 设置是否可以旋转

scrollEnabled 设置是否可以滚动

zoomEnabled 设置是否可以缩放


 显示建筑物 showsBuildings 在标准效果下才有效

 显示热门点 showsPointsOfInterest 在标准和鸟瞰效果下有效

 显示标尺(比例)showsScale

 显示交通状态 showsTraffic

 显示罗盘 showsCompass


 地图重要的代理方法:

 //更新用户位置时调用

 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

 //地图范围将要发生改变时调用

 - (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;

 //地图范围已经改变完成调用

 - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated

//点击大头针触发

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView*)view{


}

你可能感兴趣的:(UI(三十五)地图)