苹果MapKit实现简单定位功能

1 声明一个位置管理的属性

@property (nonatomic, strong) CLLocationManager* locationManager;//CLLocationManagerDelegate(代理方法)

2 初始化对象

self.locationManager = [[CLLocationManager alloc] init];

self.locationManager.delegate = self;

self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;

if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {

NSLog(@"requestWhenInUseAuthorization");

[self.locationManager requestWhenInUseAuthorization];

}

//开始定位,不断调用其代理方法

[self.locationManager startUpdatingLocation];


3 记录位置信息

- (void)locationManager:(CLLocationManager *)manager

didUpdateLocations:(NSArray *)locations

{

// 1.获取用户位置的对象

CLLocation *location = [locations lastObject];

// 2.停止定位

[manager stopUpdatingLocation];

float altitude = location.altitude;

//    NSLog(@"海拔高度为:%.2fm",altitude);

//    NSLog(@"垂直精度为:%.2fm",location.verticalAccuracy);

//    NSLog(@"当前速度:%.2fm",location.speed);

CLLocationCoordinate2D coordinate = location.coordinate;

//    NSLog(@"纬度:%f 经度:%f", coordinate.latitude, coordinate.longitude);

CLGeocoder *geocoder = [[CLGeocoder alloc] init];

//根据经纬度反向地理编译出地址信息

[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *array, NSError *error){

if (array.count > 0){

CLPlacemark *placemark = [array objectAtIndex:0];

_city = placemark.locality;

if (!_city) {

//四大直辖市的城市信息无法通过locality获得,只能通过获取省份的方法来获得(如果city为空,则可知为直辖市)

_city = placemark.administrativeArea;

}

//          NSLog(@"city--= %@", _city);

[self.destinationBtn setTitle:_city forState:UIControlStateNormal];

}

else if (error == nil && [array count] == 0)

{

NSLog(@"No results were returned.");

}

else if (error != nil)

{

//            NSLog(@"An error occurred = %@", error);

}

}];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 现在很多...
    大崔老师阅读 3,472评论 1 2
  • 一、定位介绍 现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的...
    LHsunshine阅读 408评论 0 0
  • 出自http://my.oschina.net/are1OfBlog/blog/420034 摘要 现在很多社交、...
    JJO阅读 4,329评论 4 19
  • 今天做iOS项目的时候,需要通过定位来拿到当期城市的名称。百度地图SDK有这个功能,但为了不依赖第三方,这里我用i...
    原来你是这种花椒阅读 1,940评论 1 3
  • 这几天闷闷不乐,像爬山虎失去依附,我伸出的手臂悬在半空,怅然若失。 最近,唐山下了入冬以来最大的一场雪。那不是雪的...
    杨榆阅读 814评论 6 7

友情链接更多精彩内容