微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IOS 使用CoreLocation实现定位Swift版

1、配置Custom  IOS Target Prpperties文件


2、导入CoreLocation.framework


3、使用步骤  在使用的swift文件的开始导入头文件->" import CoreLocation"

示例代码

import CoreLocation  //导入定位核心库

class ViewController:  UIViewController ,CLLocationManagerDelegate{ //遵守定位代理,以获取定位结果。

    let locationManager = CLLocationManager()

    var currentLocation:CLLocation!

    var lock = NSLock()

    override func viewDidLoad() {

        super.viewDidLoad()

        locationManager.delegate = self

        locationManager.desiredAccuracy =  kCLLocationAccuracyBest //定位精确度(最高)一般有电源接入,比较耗电

  //kCLLocationAccuracyNearestTenMeters;                    //精确到10米

        locationManager.distanceFilter =  50                      

  //设备移动后获得定位的最小距离(适合用来采集运动的定位)

  locationManager.requestWhenInUseAuthorization()           //弹出用户授权对话框,使用程序期间授权(ios8后)

        //requestAlwaysAuthorization;                             //始终授权

  locationManager.startUpdatingLocation()

        print("开始定位 。。。")

    }

override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

   // dispose of any resources that can  be recreated.

    }

    /**

     *  CLlocationDelegate

     */

    //委托传回定位,获取最后一个

    func locationManager(manager:  CLLocationManager, didUpdateLocations locations: [CLLocation]) {

        lock.lock()

        currentLocation = locations.last                       

  //注意:获取集合中最后一个位置(最新的位置)

  print("定位经纬度为:\(currentLocation.coordinate.latitude)")

  //一直发生定位错误输出结果为0:原因是我输出的是currentLocation.altitude(表示高度的)而不是currentLoction.coordinate.latitude(这个才是纬度)

  print(currentLocation.coordinate.longitude)

        lock.unlock()

    }

    func locationManager(manager:  CLLocationManager, didFailWithError error: NSError) {

        print("定位出错拉!!\(error)")

    }

参考资料网页:

1、使用CoreLocation进行定位(Swift版)

https://blog.csdn.net/qq_14920635/article/details/52400868

2、iOS11及以上操作系统无法定位问题完美解决方

https://blog.csdn.net/jia12216/article/details/81316479

3、如果将经纬度转换成城市名称,需要导入MapKit.framework

https://www.cnblogs.com/lwk151124/p/5936359.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐