IOS 城市定位详解及简单实例

 更新时间:2017年01月17日 09:45:51   投稿:lqh  
这篇文章主要介绍了IOS 城市定位详解及简单实例的相关资料,需要的朋友可以参考下

IOS 城市定位

前言:

获取经纬度并且转换成城市

iOS8定位失败解决

获取中文城市

1、建立简单的项目, 导入CoreLoation.framework:

image

2、在Info.plist中加上NSLocationAlwaysUsageDescription值为AlwaysLocation

image

3、使用CLLocationManager对象进行定位:

_locationManger = [[CLLocationManager alloc] init]; 
_locationManger.delegate = self; 
[_locationManger requestAlwaysAuthorization];//iOS8需要加上,不然定位失败 
_locationManger.desiredAccuracy = kCLLocationAccuracyBest;  //最精确模式 
_locationManger.distanceFilter = 100.0f; //至少10米才请求一次数据 
[_locationManger startUpdatingLocation]; //开始定位 

4、在CLLocationManagerDelegate代理方法(iOS8)中获取定位信息并且转换成中文城市:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{ 
  NSLog(@"定位失败"); 
  [_locationManger stopUpdatingLocation];//关闭定位 
} 
 
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ 
NSLog(@"定位成功"); 
[_locationManger stopUpdatingLocation];//关闭定位 
 
CLLocation *newLocation = locations[0]; 
NSLog(@"%@",[NSString stringWithFormat:@"经度:%3.5f\n纬度:%3.5f",newLocation.coordinate.latitude, newLocation.coordinate.longitude]); 
 
// 保存 设备 的当前语言 
NSMutableArray *userDefaultLanguages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]; 
// 强制 成 简体中文 
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"zh-hans", nil nil] forKey:@"AppleLanguages"]; 
CLGeocoder * geoCoder = [[CLGeocoder alloc] init]; 
[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { 
  for (CLPlacemark * placemark in placemarks) { 
 
    NSDictionary *test = [placemark addressDictionary]; 
    // Country(国家) State(城市) SubLocality(区) 
    NSLog(@"%@", [test objectForKey:@"State"]); 
 
    // 当前设备 在强制将城市改成 简体中文 后再还原之前的语言 
    [[NSUserDefaults standardUserDefaults] setObject:userDefaultLanguages forKey:@"AppleLanguages"]; 
  } 
}];   
} 

首次启动时,会提示是否开启定位并显示NSLocationAlwaysUsageDescription的值:

image

其中字典test的具体内容是:

image

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • iOS开发实战之Label全方位对齐的轻松实现

    iOS开发实战之Label全方位对齐的轻松实现

    这篇文章主要给大家介绍了关于iOS开发实战之轻松实现Label全方位对齐的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • IOS开发中禁止NavigationController的向右滑动返回

    IOS开发中禁止NavigationController的向右滑动返回

    这篇文章主要介绍了IOS开发中禁止NavigationController的向右滑动返回的相关资料,需要的朋友可以参考下
    2017-03-03
  • Objective-C基础 自定义对象归档详解及简单实例

    Objective-C基础 自定义对象归档详解及简单实例

    这篇文章主要介绍了Objective-C基础 自定义对象归档详解及简单实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • iOS实现容器视图控制器的方法

    iOS实现容器视图控制器的方法

    本篇文章给大家详细讲述了iOS实现容器视图控制器的方法,对此感兴趣的朋友可以测试学习下。
    2018-02-02
  • IOS中UITableView滚动到指定位置

    IOS中UITableView滚动到指定位置

    这篇文章主要介绍了IOS中UITableView滚动到指定位置的实现方法,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • iOS利用Block逆向传值的方式详解

    iOS利用Block逆向传值的方式详解

    大家应该都有所了解在iOS开发中,常见的几种逆向传值方式,有代理(delegate)、通知(NSNotification),block等等,之前已经给大家介绍了通过代理实现逆向传值的方法,这篇文章来给大家介绍如何通过Block进行逆向传值,有需要的朋友们下面跟着小编一起来学习学习吧。
    2016-12-12
  • iOS自定义身份证键盘

    iOS自定义身份证键盘

    这篇文章主要为大家详细介绍了iOS自定义身份证键盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • IOS React等Title不显示问题解决办法

    IOS React等Title不显示问题解决办法

    这篇文章主要介绍了IOS React等Title不显示问题解决办法的相关资料,需要的朋友可以参考下
    2017-02-02
  • iOS微信第三方登录实现

    iOS微信第三方登录实现

    这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • iOS开发之导航栏各种右滑返回失效的解决方法汇总

    iOS开发之导航栏各种右滑返回失效的解决方法汇总

    这篇文章主要给大家总结介绍了关于iOS开发教程之导航栏各种右滑返回失效的解决方法,文中通过示例代码介绍的非常详细,对各位iOS具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08

最新评论