首页 > 代码库 > IOS学习之——地图2 跟踪用户位置变化
IOS学习之——地图2 跟踪用户位置变化
欢迎转载,转载请注明出处
本文地址:http://blog.csdn.net/zhenggaoxing/article/details/42707685
综述
mapkit提供了跟踪用户位置和方向变化的API,所以我们这里不用自定编辑定位信息,交给系统来搞。
添加framework
实现授权获取位置信息
在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];第一行代码设置三个参数意义:原点,南北,东西详见:IOS学习之——地图1 显示地图 +现实地图
看看最终效果:
OS学习之——定位服务4 设置测试位置调试测试位置
源代码:
https://git.oschina.net/zhengaoxing/No15.2.2follow
IOS学习之——地图2 跟踪用户位置变化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。