zoukankan      html  css  js  c++  java
  • 定位

    #import "ViewController.h"

    #import <CoreLocation/CoreLocation.h>

    @interface ViewController ()<CLLocationManagerDelegate>

    // 定位管理对象

    @property (nonatomic, strong) CLLocationManager *mgr;

    // 指南针

    @property (nonatomic, strong) UIImageView *compass;

    @end

    @implementation ViewController

    - (CLLocationManager *)mgr{

        if (!_mgr) {

            _mgr = [[CLLocationManager alloc] init];

        }

        return _mgr;

    }

    - (void)viewDidLoad {

        [super viewDidLoad];

        // 1. 添加指南针

        UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_compasspointer"]];

        iv.center = CGPointMake(self.view.center.x, self.view.center.y);

        [self.view addSubview:iv];

        

        self.compass = iv;

        

        // 2. 成为代理

        self.mgr.delegate = self;

        

        

        // 3. 开始监听

        

        // 开始获取用户方向  --- 不需要授权

    //    [self.mgr startUpdatingHeading];

        

    }

    // 授权状态改变调用这个方法

    - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status

    {

        if (status == kCLAuthorizationStatusNotDetermined) {

            LogYellow(@"正在授权");

        }else if ((status == kCLAuthorizationStatusAuthorizedAlways) || (status == kCLAuthorizationStatusAuthorizedWhenInUse)){

            [self.mgr startUpdatingHeading];

        }else{

            LogYellow(@"授权失败");

        }

    }

    #pragma mark - CLLocationManagerDelegate

    // 当获取到用的的方向时, 就会调用

    - (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading

    {

        /**

         magneticHeading 设备与磁北的相对角度

         trueHeading 设置与真北的相对角度, 必须和定位一起使用, iOS需要设置的位置来计算真北

         真北始终指向地理北极点

         磁北对应随着时间变化的地球磁场北极

         */

        LogRed(@"%f",newHeading.magneticHeading);

        

        // 1.角度转换成弧度

        CGFloat angle = newHeading.magneticHeading * M_PI/ 180.0;

        

        // 2.旋转图片

        /**

         *  顺时针: 正数

         *  逆时针: 负数

         */

    //    self.compass.transform = CGAffineTransformIdentity;

        self.compass.transform = CGAffineTransformMakeRotation(-angle);

        

    }

  • 相关阅读:
    使用AStyle进行代码格式化
    ubuntu14.04设置静态ip
    网络模拟器WANem使用配置图文教程
    ServerSocket 默认邦定IP
    shell判断文件是否存在
    linux文本模式下使用PPPOE拨号ADSL上网的方法
    几个国内速度最快的centos yum(更新源)
    linux命令执行返回值(附错误对照表)
    如何在java程序中调用linux命令或者shell脚本
    windows多线程详解
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4826450.html
Copyright © 2011-2022 走看看