3

我正在开发一个增强现实应用程序,我需要使用 iPhone 传感器来获取以下信息/数据:

  • 地理纬度、经度和高度(提供相对于地球表面和平均海平面的位置)
  • 手机视点中心航向(0°=N,90°=E,180°=S,270°=W)
  • 手机视点中心仰角(0°=水平,-90°=垂直向下,+90°=垂直向上)
  • 手机倾斜(0°=纵向/垂直,90°=横向/顶部向左,180°=横向/顶部向下,270°=纵向/顶部向下)
  • 垂直对向的电话角度(即沿着标称的顶部到底部)
  • 水平对向的电话角度(即沿标称的一侧到另一侧)

我已经知道如何查找纬度、经度和海拔高度,我想知道我可以使用哪种 API 或库来查找其他数据,例如手机角度和手机视点等。我会使用什么 API?一些示例代码?链接?讨论?我只是想弄清楚如何找到这些数据!

4

2 回答 2

2

您提到的信息可以通过 CoreLocation 和 CoreMotion API 获得(正如 Jeremy 在iOS Dev Scout Facebook Group中提到的那样。

你可以得到

  • 位置传感器(aGPS、蜂窝塔、WiFi) - 纬度、经度、高度、速度、路线等。
  • 陀螺仪和加速度计 - 设备的旋转和平移。
  • 磁力计 - 北和真北。

一个名为pARk的 iOS 开发人员库中提供了一个示例 AR 项目。

产生此示例项目的伴随的 WWDC 会议是 2011 年的会议,名为 423:了解核心运动。

查看与 Core Motion 相关的 WWDC 2012 会议,以加强您在这些领域的知识。

希望这会有所帮助。有了这些信息,不难从 CoreLocation(对于您的第一个点)和 CoreMotion(对于您接下来的 5 个点)得出您需要的值。

于 2013-03-30T16:11:47.853 回答
0

Core Motion框架添加到您的项目中。

创建CMMotionManager的实例:

_motionManager = [[CMMotionManager alloc] init];
_motionManager.deviceMotionUpdateInterval = 1.00/60.00;
[_motionManager startDeviceMotionUpdates];

获取 CMDeviceMotion 参考:

CMDeviceMotion *currentDeviceMotion = _motionManager.deviceMotion;

要获得姿态(Pitch、Roll 和 Yaw 的组合):

CMAttitude *currentAttitude = currentDeviceMotion.attitude;

要获得音高(围绕通过 iPhone 的横轴旋转):

currentAttitude.pitch

要获得滚动(从上到下围绕纵轴旋转):

currentAttitude.roll

要获得偏航(围绕垂直穿过 iPhone 的轴旋转):

currentAttitude.yaw

这应该有助于获取其他设备数据,例如角度和倾斜度,并且当与核心位置框架结合使用时,您应该能够获得所需的一切。

于 2013-03-30T23:32:11.933 回答