其他分享
首页 > 其他分享> > IOS 使用CoreLocation实现定位(Swift版)

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

标签:定位,CoreLocation,IOS,locationManager,func,print,Swift,currentLocation
来源: https://blog.csdn.net/Kariswei/article/details/119109893