欢迎转载,转载请注明出处
本文地址:http://blog.csdn.net/zhenggaoxing/article/details/42707685
mapkit提供了跟踪用户位置和方向变化的API,所以我们这里不用自定编辑定位信息,交给系统来搞。
在iOS8中,没有用户授权程序是无法获取定位信息的,所以我们需要在info.plist上添加两个键值:
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
同时给self(viewcontroller)添加CLLocationmanager 类型的属性
#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CLLocationManagerDelegate.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet MKMapView *mapView; @property (strong,nonatomic) CLLocationManager *locationManage;
然后实现请求授权方法:
self.locationManage=[CLLocationManager new]; [self.locationManage requestAlwaysAuthorization];
请求授权的方法有两个:
requestAlwaysAuthorization 总是授权
requestWhenInUseAuthorization 试用的时候授权
设置跟踪的方式
if([CLLocationManager locationServicesEnabled]) { mapView.mapType=MKMapTypeStandard; mapView.delegate=self; mapView.showsUserLocation=YES; [mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];// 设置跟踪方式 }跟踪的方式有三种可选的
MKUserTrackingModeNone 不跟踪
MKUserTrackingModeFollow 跟踪
MKUserTrackingModeFollowWithHeading 跟踪获取位置信息和方向信息
实时更新跟踪的位置信息
添加代码如下:MKUserTrackingModeNone = 0, // the user's location is not followed MKUserTrackingModeFollow, // the map follows the user's location MKUserTrackingModeFollowWithHeading,
看看效果:是不是很酷?但是:范围是不是大了点?
设置显示范围(region)
MKCoordinateRegion viewRegion=MKCoordinateRegionMakeWithDistance(mapView.centerCoordinate, 1000, 1000); [mapView setRegion:viewRegion animated:YES];第一行代码设置三个参数意义:原点,南北,东西
看看最终效果:
OS学习之——定位服务4 设置测试位置调试测试位置
https://git.oschina.net/zhengaoxing/No15.2.2follow
原文地址:http://blog.csdn.net/zhenggaoxing/article/details/42707685