2、其次,在.m中引入CoreLocation/CoreLocation.h头文件,并遵循CLLocationManagerDelegate代理。然后使用以下代码定义一个CLLocationManager 对象:
#import"CoreLocation/CoreLocation.h"
@interfaceViewController()
@property(强,非原子)CLLocationManager*locationManager;
@结尾
if ([CLLocationManager locationServicesEnabled]) {//判断是否允许定位操作
self.locationManager=[[CLLocationManager alloc] init];
self.locationManager.delegate=self;//跟随代理
self.locationManager.desiredAccuracy=kCLLocationAccuracyBest;
self.locationManager.distanceFilter=10.0f;
[_locationManager requestWhenInUseAuthorization];//允许在应用过程中访问位置数据(iOS8以上定位需要)
[self.locationManager startUpdatingLocation];//开始定位
}else{//如果无法定位到用户位置,则再次判断,并给用户提示。
//1.提醒用户检查当前网络状态
//2.提醒用户打开定位开关
}
}
#pragma mark===定位代理方法
- (void)locationManager:(CLLocationManager *)经理didUpdateLocations:(NSArray *)位置{
//当前城市的坐标值
CLLocation *currLocation=[最后一个对象的位置];
NSLog(@"经度=%f 纬度=%f 海拔=%f", currLocation.coordinate.latitude, currLocation.coordinate.longitude, currLocation.altitude);
//根据经纬度逆向地理编译地址信息
CLGeocoder * geoCoder=[[CLGeocoder alloc] init];
[geoCoderverseGeocodeLocation:currLocationcompletionHandler:^(NSArray *地标,NSError *错误){
for (CLPlacemark * 地标中的地标) {
NSDictionary *address=[地标地址Dictionary];
//国家(国家) 州(省) 城市(城市)
NSLog(@"######%@",地址);
NSLog(@"%@", [地址objectForKey:@"国家"]);
NSLog(@"%@", [地址objectForKey:@"State"]);
NSLog(@"%@", [地址objectForKey:@"城市"]);
self.cllocationCity=[地址objectForKey:@"城市"];
}
}];
}
//如果定位失败,会弹出提示框。点击“开启定位”按钮,打开系统设置并提示开启定位服务。
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
UIAlertController *alertVC=[UIAlertControlleralertControllerWithTitle:@"允许定位"提示"message:@"请在设置中开启定位"preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction * ok=[UIAlertAction actionWithTitle:@"开放定位" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//打开定位设置
NSURL *settingsURL=[NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication共享应用程序] openURL:settingsURL];
}];
UIAlertAction * 取消=[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull 操作) {
}];
[alertVC addAction:cancel];
[alertVC addAction:ok];
【如何获取iOS设备当前位置信息】相关文章:
用户评论
这个功能也太方便了!想找家附近的小吃店简直不用费事。
有12位网友表示赞同!
每次想去新地方玩都找不到路,iOS 的定位真是太棒了。
有6位网友表示赞同!
打车也更轻松了,直接输入目的地就搞定了,省去好多时间。
有10位网友表示赞同!
旅行的时候可以利用这个功能探索新的城市,感觉自己像个导航大师一样。
有17位网友表示赞同!
共享单车的定位真的挺精准的,骑到一半不用担心找不到站点。
有8位网友表示赞同!
玩游戏也能用这个功能定位,比如寻宝类型的游戏就更有趣了。
有16位网友表示赞同!
还能知道身边有没有附近的咖啡馆、书店?简直是生活的好帮手啊!
有13位网友表示赞同!
朋友们聚会的时候可以用定位分享位置,方便大家集合。
有6位网友表示赞同!
开车导航这个功能真的很实用,能节省好多时间和精力。
有19位网友表示赞同!
手机地图的功能越來越强大,真是越来越依赖它了。
有15位网友表示赞同!
有了定位功能,很多原来不便的事情都能变得很顺手。
有17位网友表示赞同!
这几年手机上定位的准确性越来越高了,简直一点都不夸张!
有10位网友表示赞同!
只要有信号,就能在任何地方使用这个功能,真是太方便了!
有14位网友表示赞同!
现在很多App都整合了定位功能,比如快递追踪、订餐等等。
有12位网友表示赞同!
对一些生活场景来说,定位功能几乎是必不可少的。
有16位网友表示赞同!
希望以后定位功能能够更加智能化,更好地服务我们的日常生活。
有11位网友表示赞同!
苹果手机的iOS系统还是非常人性化的,各种应用都方便实用!
有5位网友表示赞同!
使用定位功能的时候要注意保护个人隐私安全问题。
有12位网友表示赞同!
我觉得这种便捷功能是科技进步带来的福音!
有8位网友表示赞同!
希望更多人能够了解和使用这方面的功能,提升生活品质。
有8位网友表示赞同!