iOS - 地图

地图:导入#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{

}

你可能感兴趣的:(iOS - 地图)