博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MapKit的基本使用
阅读量:5151 次
发布时间:2019-06-13

本文共 3271 字,大约阅读时间需要 10 分钟。

#mapKit使用最基本的例子

#终点在于注意在iOS8中定位增加的授权请求

1.在创建CLLocationManager后,需要进行定位授权。

-(CLLocationManager *)mgr{    if (_mgr == nil) {                _mgr = [[CLLocationManager alloc]init];        //定位授权        [_mgr requestAlwaysAuthorization];        [_mgr requestWhenInUseAuthorization];                //定位精度        _mgr.desiredAccuracy = kCLLocationAccuracyBest;        //更新距离        _mgr.distanceFilter = 10;                _mgr.delegate = self;    }    return _mgr;}

 2.并在info.plist中配置如下两个key信息,string的内容根据实际需求填写。

 

完整代码如下:

#import "ViewController.h"#import 
#import
@interface ViewController ()
/** * mapView,storyboard连接 */@property (weak, nonatomic) IBOutlet MKMapView *mapView;/** * 按钮,回到定位位置,storyboard连接 */- (IBAction)currentPosition;@property (nonatomic, strong) CLLocationManager *mgr;@end@implementation ViewController-(CLLocationManager *)mgr{ if (_mgr == nil) { _mgr = [[CLLocationManager alloc]init]; //定位授权 [_mgr requestAlwaysAuthorization]; [_mgr requestWhenInUseAuthorization]; //定位精度 _mgr.desiredAccuracy = kCLLocationAccuracyBest; //更新距离 _mgr.distanceFilter = 10; _mgr.delegate = self; } return _mgr;}- (void)viewDidLoad { [super viewDidLoad];#warning IOS8中变化 /* 1.定位授权 requestWhenInUseAuthorization() requestAlwaysAuthorization() 2.info.plist配置这两个key NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription */ //0.开始定位 [self.mgr startUpdatingLocation]; //1.跟踪用户位置 self.mapView.userTrackingMode = MKUserTrackingModeFollow; self.mapView.showsUserLocation = YES; //2.设置地图类型 self.mapView.mapType = MKMapTypeStandard; //3.设置地图代理 self.mapView.delegate = self;}#pragma mark - 关闭定位-(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; //停止定位 [self.mgr stopUpdatingLocation];}#pragma mark - MKMapViewDelegate#pragma mark 位置改变-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation{ NSLog(@"didUpdateUserLocation:%@",userLocation.location); //位置描述标题 userLocation.title = @"我在这里"; userLocation.subtitle = @"我真的在这里"; //中心 CLLocationCoordinate2D center = userLocation.coordinate; //显示经纬跨度 MKCoordinateSpan span = MKCoordinateSpanMake(0.002214, 0.001751); //范围 MKCoordinateRegion region = MKCoordinateRegionMake(center, span); //设置范围 [mapView setRegion:region animated:YES];}#pragma mark MKMapViewDelegate代理方法,显示区域改变-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{ NSLog(@"center.latitude:%f--center.longitude:%f", mapView.region.center.latitude, mapView.region.center.longitude); NSLog(@"span.latitudeDelta:%f--span.longitudeDelta:%f", mapView.region.span.latitudeDelta, mapView.region.span.longitudeDelta);}#pragma mark - CLLocationManagerDelegate代理方法-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ NSLog(@"%@",[locations firstObject]);}#pragma mark - 回到定位位置- (IBAction)currentPosition { [self.mapView setCenterCoordinate:self.mapView.userLocation.location.coordinate animated:YES];}@end

 

转载于:https://www.cnblogs.com/canghaige/p/4227444.html

你可能感兴趣的文章
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
九校联考-DL24凉心模拟Day2T1 锻造(forging)
查看>>
Attributes.Add用途与用法
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
javascript 无限分类
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
OpenFire 的安装和配置
查看>>
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
海上孤独的帆
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
web页面实现指定区域打印功能
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>