大多数情况下APP会在开启应用的时候获取当前的位置,所以我写在APPDelegate里

第一步

import CoreLocationvar locationManager = CLLocationManager()

第二步

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {//开启定位loadLocation()  return true
}

第三步 实现代理方法

extension AppDelegate: CLLocationManagerDelegate
{//打开定位
func loadLocation()
{locationManager.delegate = self//定位方式locationManager.desiredAccuracy = kCLLocationAccuracyBest//iOS8.0以上才可以使用if(UIDevice.currentDevice().systemVersion >= "8.0"){//始终允许访问位置信息locationManager.requestAlwaysAuthorization()//使用应用程序期间允许访问位置数据locationManager.requestWhenInUseAuthorization()}//开启定位locationManager.startUpdatingLocation()
}//获取定位信息
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {//取得locations数组的最后一个let location:CLLocation = locations[locations.count-1]currLocation = locations.last!//判断是否为空if(location.horizontalAccuracy > 0){lat = Double(String(format: "%.1f", location.coordinate.latitude))long = Double(String(format: "%.1f", location.coordinate.longitude))print("纬度:\(long!)")print("经度:\(lat!)")LonLatToCity()//停止定位locationManager.stopUpdatingLocation()}}//出现错误
func locationManager(manager: CLLocationManager, didFinishDeferredUpdatesWithError error: NSError?) {print(error)
}///将经纬度转换为城市名
func LonLatToCity() {let geocoder: CLGeocoder = CLGeocoder()geocoder.reverseGeocodeLocation(currLocation) { (placemark, error) -> Void inif(error == nil){let array = placemark! as NSArraylet mark = array.firstObject as! CLPlacemark//城市var city: String = (mark.addressDictionary! as NSDictionary).valueForKey("City") as! String//国家let country: NSString = (mark.addressDictionary! as NSDictionary).valueForKey("Country") as! NSString//国家编码let CountryCode: NSString = (mark.addressDictionary! as NSDictionary).valueForKey("CountryCode") as! NSString//街道位置let FormattedAddressLines: NSString = (mark.addressDictionary! as NSDictionary).valueForKey("FormattedAddressLines")?.firstObject as! NSString//具体位置let Name: NSString = (mark.addressDictionary! as NSDictionary).valueForKey("Name") as! NSString//省var State: String = (mark.addressDictionary! as NSDictionary).valueForKey("State") as! String//区let SubLocality: NSString = (mark.addressDictionary! as NSDictionary).valueForKey("SubLocality") as! NSString//如果需要去掉“市”和“省”字眼State = State.stringByReplacingOccurrencesOfString("省", withString: "")let citynameStr = city.stringByReplacingOccurrencesOfString("市", withString: "")}else{print(error)}}}}

Swift 使用CoreLocation获取定位与位置信息相关推荐

  1. 高德地图android api定位失败,android 定位没有问题,iOS定位失败获取不到位置信息...

    @override void initState() { super.initState(); _type = widget.type; WidgetsBinding.instance.addPost ...

  2. Vue获取当前的位置信息、经纬度

    通过navigator.geolocation对象中的getCurrentPosition() 函数获取用户当前定位位置.这会异步地请求获取用户位置,并查询定位硬件来获取最新信息.当定位被确定后,定义 ...

  3. 高德地图逆地理编码Geocoder的getlocation获取不到位置信息

    问题:原生定位接口定位失败,则status返回error事件或回调error信息,获取不到位置信息 产生原因:逆编码方法使用不了原因是使用的高德地图的应用方向web服务,而Geocoder属于web端 ...

  4. uni-app开发微信小程使用腾讯位置服务获取用户的位置信息

    uni-app开发微信小程使用腾讯位置服务获取用户的位置信息 一.开通腾讯位置服务 二.编码实现 (一)获取定位坐标 (二).在项目中使用 一.开通腾讯位置服务 在这里我们先要登录腾讯我i之服务的官网 ...

  5. 根据经纬度获取用户当前位置信息

    根据上篇文章获取的经纬度获取用户当前的位置信息 //获取用户所在位置信息ADDRESS func getUserAddress() { let latitude : CLLocationDegrees ...

  6. 微信小程序 - 获取用户当前位置信息(用于定位地址及获取地址等需求)

    前言 有两种获取位置的方式,一种是 直接返回经纬度等信息(必须代码处理后才能显示到界面上),另一种是 "界面选择式" 由用户打开地图选择位置. 最近有添加用户收货地址需求(外卖项目 ...

  7. 微信扫码签到系统asp源码写的,并且获取签到者位置信息入库保存

    不管是工作会议,还是员工活动,每次集会基本都需要签到.传统的纸质签到效率低下,找名字费时,排队费时,更可怕的是好不容易轮到了你,却发现你的名字在隔壁人堆里那张纸上. 此代代码的功能是,集会现场只需贴出 ...

  8. 手机端或PC端利用高德地图和腾讯地图获取用户当前位置信息

    目录 一.简介 二.高德地图 三.腾讯地图 四.总结 一.简介 最近在项目中,有需要使用到获取用户当前地理位置信息的功能,获取当前用户位置保存到数据库中的场景,并且需要支持多种地图定位方式,我这里采用 ...

  9. GoogleMap获取地图中心点位置信息

    最近开发一款海外项目,用到地图的功能,肯定选择的是谷歌地图. 功能有获取用户当前定位并标记,标记用户周围的骑手位置:谷歌地图搜索地址:地图上标记两个点并画出两点的直线距离或者路线距离.这个一堆的功能对 ...

最新文章

  1. 独家 | 手把手教你怎样用Python生成漂亮且精辟的图像(附教程代码)
  2. 关于人工智能中强化学习的扫盲
  3. 元素的   is_enable()、is_displayed()和is_selected()
  4. 2018.8.18 servlet使用的会话跟踪除session外还有哪些方式
  5. 姚班学霸蝉联第一,清华再霸榜,湘潭大学表现亮眼,第四届 CCF CCSP落下帷幕...
  6. 开发日记-20190524 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  7. 分支管理---分支管理策略
  8. python环境配置opencv_【Python】python2.7 安装配置OpenCV2
  9. 学习 MySQL 高性能优化原理,这一篇就够了!
  10. kamailio,asteisk,realtime 实现负载均衡(集群)完整配置笔记
  11. 阿里云数据库开源发布:PolarDB HTAP的功能特性和关键技术
  12. CVPR 2022|只用一张图+相机走位,AI就能脑补周围环境!
  13. Linux 开发环境搭建与使用——SlickEdit 的安装与配置
  14. 【Linux operation 18】 - SUSE 12 SP5在线安装Docker
  15. C/C++ typedef用法详解
  16. 用c语言设计一个菜单界面_最新,最全的NX二次开发Ribbon界面菜单的设计图文教程...
  17. 2021年企业选型OA系统十大品牌
  18. 【CPRI】(3)帧格式详解(重点)
  19. android 局域网socket,Android基于局域网socket通信
  20. Python format 格式化输入字符对不齐解决

热门文章

  1. 在Ubuntu11.10中安装配置OpenCV2.3.1和CodeBlocks
  2. notepad php发布网站,谈谈如何把WordPress部署到服务器上
  3. nodejs操作sqlserver数据_pyspark操作MySQL、SQLServer数据库进行数据处理操作
  4. python给一列数据增加前缀_python自制工具----给文件添加前后缀。
  5. 因子分析数据_Excel数据分析案例:用Excel做因子分析
  6. 存储mysql数据存在特殊字符时处理_转义 存储数据时特殊符号的处理
  7. Java项目:电商书城平台系统设计和实现(java+springboot+mysql+spring+jsp)
  8. 动态刷新_屋盖“起飞”刷新国内记录,中建八局杭州萧山国际机场项目最新动态来袭...
  9. 慕课《深入理解计算机系统》袁林枫老师章节测试1-9
  10. 计算机评语公式怎么输,在excel中,如何使用公式写评语