swift开发笔记18 - 获取当前位置坐标和地址
来源:互联网 发布:机械工艺制作软件 编辑:程序博客网 时间:2024/06/05 11:23
首先在info.plist里增加两行:NSLocationAlwaysUsageDescription和NSLocationWhenInUseUsageDescription,如下图中倒数3和4行
然后
import CoreLocation
给类增加代理:
CLLocationManagerDelegate
增加类属性:
//用于定位服务管理类,它能够给我们提供位置信息和高度信息,也可以监控设备进入或离开某个区域,还可以获得设备的运行方向
var locationManager : CLLocationManager!
var currLocation : CLLocation!
主要代码,总共三个函数:var locationManager : CLLocationManager! var currLocation : CLLocation! override func viewDidLoad() { //初始化位置管理器 locationManager = CLLocationManager() locationManager.delegate = self //设备使用电池供电时最高的精度 locationManager.desiredAccuracy = kCLLocationAccuracyBest //精确到1000米,距离过滤器,定义了设备移动后获得位置信息的最小距离 locationManager.distanceFilter = kCLLocationAccuracyKilometer if ios8() { //如果是IOS8及以上版本需调用这个方法 locationManager.requestAlwaysAuthorization() //使用应用程序期间允许访问位置数据 locationManager.requestWhenInUseAuthorization(); //启动定位 locationManager.startUpdatingLocation() }} //FIXME: CoreLocationManagerDelegate 中获取到位置信息的处理函数 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { let location:CLLocation = locations[locations.count-1] as CLLocation currLocation=location if (location.horizontalAccuracy > 0) { self.locationManager.stopUpdatingLocation() print("wgs84坐标系 纬度: \(location.coordinate.latitude) 经度: \(location.coordinate.longitude)") self.locationManager.stopUpdatingLocation() print("结束定位") } //使用坐标,获取地址 let geocoder = CLGeocoder() var p:CLPlacemark? geocoder.reverseGeocodeLocation(currLocation, completionHandler: { (placemarks, error) -> Void in if error != nil { print("获取地址失败: \(error!.localizedDescription)") return } let pm = placemarks! as [CLPlacemark] if (pm.count > 0){ p = placemarks![0] as CLPlacemark print("地址:\(p?.name!)") }else{ print("没地址!") } }) } //FIXME: 获取位置信息失败 func locationManager(manager: CLLocationManager, didFailWithError error: NSError) { print(error) }
判断手机系统版本:
func ios8() -> Bool { var versionCode:String = UIDevice.currentDevice().systemVersion let version = NSString(string: versionCode).doubleValue return version >= 8.0 }
2 0
- swift开发笔记18 - 获取当前位置坐标和地址
- VC 获取鼠标当前位置坐标和RGB
- 获取当前位置的坐标
- Swift获取当前位置
- iOS获取当前位置信息(坐标和具体街道信息)
- delphi 获取鼠标当前位置的相对坐标
- delphi 获取鼠标当前位置的相对坐标
- android 获取当前位置坐标 经度 纬度
- iOS获取当前位置(基于Swift)
- 百度地图,通过地址获取坐标和通过坐标获取地址
- 百度地图获取当前位置坐标,并计算距离
- IOS获取当前位置坐标不执行代理方法
- iOS GPS定位CLLocationManager获取当前位置坐标 示例代码
- js获取当前位置的地理坐标(经纬度)
- Android根据已知的经纬度坐标获取当前位置
- iOS开发笔记(使用Google Map Service获取用户当前位置信息)
- Android开发之GPS获取当前位置信息
- IE和FF下获取鼠标当前位置
- 微信SDK 在iphone 6plus上分享失败(ios自学笔记)
- 测试内链接
- php 把十六进制转化为二进制生成图片
- 文章标题
- Caffe In Practice
- swift开发笔记18 - 获取当前位置坐标和地址
- spring3.2 @Scheduled注解 定时任务
- java.lang.IllegalStateException
- 151202storyboard中, 设置子控件和父控件的高宽比
- volley二次封装
- iOS数据库离线缓存思路和网络层封装
- LeetCode--Symmetric Tree
- Java集合类
- 【纠错】使用ViewPager、PagerAdapter 以及SQLite 犯的错误