地图(MapKit) - 作业部落 Cmd Markdown 编辑阅读器
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-44461741-1', 'zybuluo.com'); ga('send', 'pageview');
设置MKMapView的
地图的类型,可以通过设置MKMapView的
查看更早的 5 条回复
@SanMao
2015-08-05T16:30:22.000000Z
字数 1879
阅读 2
地图(MapKit)
定位/地图
MapKit框架的使用
- MapKit框架中所有数据类型的前缀都是MK
- MapKit有一个比较重要的UI控件 :
MKMapView
,专门用于地图显示
设置MKMapView的userTrackingMode
属性可以跟踪显示用户的当前位置
- MKUserTrackingModeNone :不跟踪用户的位置
- MKUserTrackingModeFollow :跟踪并在地图上显示用户的当前位置
- MKUserTrackingModeFollowWithHeading:跟踪并在地图上显示用户的当前位置,地图会跟随用户的前进方向进行旋转
地图的类型,可以通过设置MKMapView的mapViewType
设置地图类型
- MKMapTypeStandard :普通地图
- MKMapTypeSatellite :卫星云图
- MKMapTypeHybrid :普通地图覆盖于卫星云图之上
MKMapView的代理
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation;
// 一个位置更改默认只会调用一次,不断监测用户的当前位置
// 每次调用,都会把用户的最新位置(userLocation参数)传进来
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
// 地图的显示区域即将发生改变的时候调用
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
// 地图的显示区域已经发生改变的时候调用
MKUserLocation
- MKUserLocation其实是个大头针模型,包括以下属性
@property (nonatomic, copy) NSString *title;
// 显示在大头针上的标题
@property (nonatomic, copy) NSString *subtitle;
// 显示在大头针上的子标题
@property (readonly, nonatomic) CLLocation *location;
// 地理位置信息(大头针钉在什么地方)
自定义大头针
- 自定义大头针,设置MKMapView的代理实现代理方法,返回大头针控件
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation;
// 根据传进来的(id<MKAnnotation>)annotation参数创建并返回对应的大头针控件
- 代理方法的使用注意
- 如果返回nil,显示出来的大头针就采取系统的默认样式
- 标识用户位置的蓝色发光圆点,它也是一个大头针,当显示这个大头针时,也会调用代理方法因此,需要在代理方法中分清楚(id )annotation参数代表自定义的大头针还是蓝色发光圆点
MKAnnotationView
地图上的大头针控件是MKAnnotationView
MKAnnotationView的属性
@property (nonatomic, strong) id <MKAnnotation> annotation;
// 大头针模型
@property (nonatomic, strong) UIImage *image;
// 显示的图片
@property (nonatomic) BOOL canShowCallout;
// 是否显示标注
@property (nonatomic) CGPoint calloutOffset;
// 标注的偏移量
@property (strong, nonatomic) UIView *rightCalloutAccessoryView;
// 标注右边显示什么控件
@property (strong, nonatomic) UIView *leftCalloutAccessoryView;
// 标注左边显示什么控件
MKPinAnnotationView
- MKPinAnnotationView是MKAnnotationView的子类
- MKPinAnnotationView比MKAnnotationView多了2个属性
@property (nonatomic) MKPinAnnotationColor pinColor;
// 大头针颜色
@property (nonatomic) BOOL animatesDrop;
// 大头针第一次显示时是否从天而降
添加新批注
在作者公开此批注前,只有你和作者可见。
![](https://i-blog.csdnimg.cn/blog_migrate/0d587ade01e1c797ec9fa6173d802091.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/0d587ade01e1c797ec9fa6173d802091.jpeg)