swift 地图定位(五)指南针

准备,SB 中加入imageview,并设置指南针图片,真机运行

import UIKit
import CoreLocation

class ViewController: UIViewController {

    @IBOutlet weak var compassView: UIImageView!
    
    lazy var locationM: CLLocationManager = {
        let locationM = CLLocationManager()
        locationM.delegate = self
        return locationM
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        if CLLocationManager.headingAvailable() {
            locationM.startUpdatingHeading()
        }else {
            print("当前磁力计设备损坏")
        }
    }
}

extension ViewController: CLLocationManagerDelegate {
    func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
        print(newHeading)
        /*
         magneticHeading 39.81 trueHeading -1.00 accuracy 25.00 x -16.660 y +21.679 z -23.405 @ 2016-11-13 16:41:17 +0000
         magneticHeading 9.75 trueHeading -1.00 accuracy 25.00 x -5.253 y +38.752 z -27.773 @ 2016-11-13 16:42:28 +0000
         */
        let angle = newHeading.magneticHeading//拿到当前设备朝向 0- 359.9 角度
        let arc = CGFloat(angle / 180 * M_PI)//角度转换成为弧度
        UIView.animate(withDuration: 0.5, animations: {
            self.compassView.transform = CGAffineTransform(rotationAngle: -arc)
        })
    }
}
swift 地图定位(五)指南针_第1张图片

你可能感兴趣的:(swift,导航,地图,指南针)