BRSunTracker 1.0.1

BRSunTracker 1.0.1

测试已测试
语言语言 Obj-CObjective C
许可证 自定义
发布最后发布2014年12月

未申领 维护。




BRSunTracker 是一组使用 增强现实 的类,允许您根据您当前的 GPS 定位、设备陀螺仪、时间和日期在您的设备屏幕上跟踪和显示太阳的位置。

包含的示例应用在相机预览中显示一个标记,该标记跟随屏幕上的太阳,并在手机朝向它时跳转到视图的中间。

安装

使用

  1. BRSunTrackerView 类导入到您的视图控制器中

      #import "BRSunTrackerView.h"
  2. 实例化 BRSunTrackerView 并将其作为子视图添加。

    BRSunTrackerView *sunTrackerView = [[BRSunTrackerView alloc] initWithFrame:CGRectMake(0, 0, 320, 428)];
    [self.view addSubview:sunTrackerView];

    或者您也可以通过 Interface Builder 直接添加 BRSunTrackerView

  3. 默认情况下,BRSunTrackerView 将显示相机预览和默认的跟随太阳的标记。您可以通过设置以下属性来启用或禁用相机并自定义标记为 UIView

      // Enable or disable the camera preview
      // (The default value is YES)
      [sunTrackerView setDisplayCameraPreview:YES];
    
      // Provide your own marker subview 
      // (otherwise will display the default one)
      [sunTrackerView setSunView:myMarkerView];
  4. (可选)将您的视图控制器设置为 BRSunTrackerView 的代理,并使其符合 BRSunTrackerViewDelegate 协议。实现以下方法以检测手机是否对齐到太阳

      [sunTrackerView setDelegate:self];  
      - (void)sunTrackerViewGotFocus:(BRSunTrackerView *)sunTrackerView{
          NSLog(@"The sun is aligned with the device.");
      }
    
      - (void)sunTrackerViewLostFocus:(BRSunTrackerView *)sunTrackerView{
          NSLog(@"The sun is not aligned with the device anymore.");
      }
  5. 拿上一副太阳镜(和一杯冷饮)。

它是如何工作的?

以下是一个解释 BRSunTracker 中计算太阳 2D 屏幕坐标大致过程的图表。所有这些都在 BRSunTracker 类内部进行。陀螺仪方向数据目前以每秒 60 次的速度采样,如果 GPS 定位更新或每分钟计算一次太阳球面坐标。

http://i.imgur.com/aF1SeW5.png

来源

pARk,苹果代码示例,显示基本的增强现实实现

PSA 算法,一个基于 GPS 坐标、时间和日期计算太阳球面坐标的 C++ 函数

Stack Overflow,我关于如何比较设备方向与太阳位置的初始 Stack Overflow 帖子

作者

Julien Ducret - cpwe/napopxl

在推特上关注我 @jbrocoo

查看我的应用:Spores

许可证

BRFlabbyTable处于Apache许可证之下,有关更多信息,请参阅LICENCE文件。