如何找到设备运动的方向?

时间:2010-06-04 06:04:33

标签: iphone

我正在实施一个iphone应用程序,其中我想找到移动设备的方向。我不知道如何找到。可以帮我解决这个问题。提前做好准备。

2 个答案:

答案 0 :(得分:0)

我假设你在谈论标题。这只适用于iPhone 3GS和即将推出的型号。

在您的位置管理器上调用startUpdatingHeading方法,然后实施

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

从经理那里检索标题。

答案 1 :(得分:0)

如果您想要指南针方向,iPhone正在地图上旅行,请使用DC的答案。如果您想检测iPhone的摇晃和移动,请使用加速度计:

您创建一个类,或将类指定为<UIAccelerometerDelegate>,然后实现didAccelerate方法。例如,该类可以是您现有的viewcontroller。

在此方法中,您可以通过分别检查acceleration.x,.y和.z来检测“重力拉动”相对于底部,左侧和进/出轴的方向。每个轴将具有从0.0到1.0的度量,并且它们一起形成长度为1的向量,该向量指向重力方向,基本上是它所保持的角度。例如,当面朝上躺在桌子上时,拉动将处于+ Z方向(“进入屏幕”轴)。

这是iPhone静止时的身体。如果摇动iPhone,矢量长度偏离1.0。您可以使用毕达哥拉斯定理计算向量长度,只需l = sqrt(x*x+y*y+z*z);

要启动加速度计测量,请使用此代码

UIAccelerometer *acc=[UIAccelerometer sharedAccelerometer];
acc.delegate=self;
acc.updateInterval=1/60;

如果你想每秒轮询60次。简单而有趣:)