2014-10-03 44 views
0

我有一个应用程序从CMAltimeter startRelativeAltitudeUpdatesToQueue:block中记录数据。录制很好,但有些数据很奇怪。这是我用于录制的非常简单的片段。坐标计奇数数据

NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
[self.altitude startRelativeAltitudeUpdatesToQueue:queue withHandler:^(CMAltitudeData *altitudeData, NSError *error) { 
     dispatch_async(dispatch_get_main_queue(),^{ 
      NSLog(@"Altitude: %f", altitudeData.relativeAltitude.floatValue); 
     }); 
    }]; 

录音是在城市中行走时完成的,我得到了一些下面的奇数值。正如你所看到的,就像我从+7米下降到-225米一样。如文件中所述,海拔高度与第一个海拔高度记录相关。

是否有人解释我的理解CMAltimeter的工作原理是否有问题?或者这是一个错误?

感谢

2014-10-03 09:09:02.669 XXXXXXXXX[1811:13772492] altitude: 9.252784729003906 
2014-10-03 09:09:02.669 XXXXXXXXX[1811:13772492] altitude: 9.252784729003906 
2014-10-03 09:09:02.669 XXXXXXXXX[1811:13772492] altitude: 8.666885375976562 
2014-10-03 09:09:02.669 XXXXXXXXX[1811:13772492] altitude: 7.081024169921875 
2014-10-03 09:09:02.669 XXXXXXXXX[1811:13772492] altitude: -28.24831390380859 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -61.20027160644531 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -28.24831390380859 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -40.86483764648438 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -40.86483764648438 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -40.86483764648438 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -45.53067016601562 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -53.98106384277344 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -64.6231689453125 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -53.98106384277344 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -28.13791656494141 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -28.13791656494141 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -92.41580200195312 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -146.3153533935547 
2014-10-03 09:09:02.670 XXXXXXXXX[1811:13772492] altitude: -160.0170745849609 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -181.5329132080078 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -181.5329132080078 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -181.5329132080078 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -199.3322296142578 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -193.2239837646484 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -199.3322296142578 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -209.9459381103516 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -209.9459381103516 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -187.6910858154297 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -187.6910858154297 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -197.9417877197266 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -201.6117706298828 
2014-10-03 09:09:02.671 XXXXXXXXX[1811:13772492] altitude: -201.6117706298828 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -201.6117706298828 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -225.4467010498047 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -225.4467010498047 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -225.4467010498047 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -190.1396331787109 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -190.1396331787109 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -220.1163177490234 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -220.1163177490234 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -217.6054229736328 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -216.1069793701172 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -216.1069793701172 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -216.1069793701172 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -220.0596771240234 
2014-10-03 09:09:02.672 XXXXXXXXX[1811:13772492] altitude: -208.4894256591797 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -208.4894256591797 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -181.7436370849609 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -120.3368835449219 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -37.50768280029297 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -37.50768280029297 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -37.50768280029297 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -35.98821258544922 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -35.98821258544922 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -33.94368743896484 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -33.94368743896484 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -25.50093841552734 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -25.50093841552734 
2014-10-03 09:09:02.673 XXXXXXXXX[1811:13772492] altitude: -25.50093841552734 
2014-10-03 09:09:02.674 XXXXXXXXX[1811:13772492] altitude: -51.27220153808594 
2014-10-03 09:09:02.674 XXXXXXXXX[1811:13772492] altitude: -16.14826202392578 
2014-10-03 09:09:02.674 XXXXXXXXX[1811:13772492] altitude: 2.517410278320312 
2014-10-03 09:09:02.674 XXXXXXXXX[1811:13772492] altitude: 3.932975769042969 
2014-10-03 09:09:02.674 XXXXXXXXX[1811:13772492] altitude: 4.590446472167969 
2014-10-03 09:09:02.674 XXXXXXXXX[1811:13772492] altitude: 6.611000061035156 
2014-10-03 09:09:02.674 XXXXXXXXX[1811:13772492] altitude: 6.611000061035156 
2014-10-03 09:09:02.674 XXXXXXXXX[1811:13772492] altitude: 5.907508850097656 
+0

我也有同样的问题,数据是如此不准确。 – Rain 2016-05-03 13:48:25

回答

0

你的结果很可能是由于代码中的小bug:

NSLog(@"Altitude: %f", altitudeData.relativeAltitude.floatValue); 

应该是:

NSLog(@"Altitude: %f", altitudeData.relativeAltitude.doubleValue); 

格式化 '%F' 预期双重价值。

+0

同意在NSLog中的小型铸造问题,但这不是为什么我得到-200米或更多的相对高度。事实上,问题不是问题,而是与用例更相关。 iPhone在塑料袋里。当用户在地面上时,定义0米高度。 -200米是由于使用者进入水中,因此水中的压力与空气中的压力不同。 – Appsido 2014-10-24 15:24:50

+0

啊,是的,这将解释它。但在你的问题中,你说过“在城市中行走时完成录音”。这是一个不正确的说法吗? – fishinear 2014-10-25 09:09:45

+0

是的声明是错误的。测试人员没有告诉我他为特定数据所做的具体用法。 – Appsido 2014-10-27 09:08:34

-1

我的理解是%f期望float。 %lf预计为双倍

+0

%f预期为double,'l'修饰符不适用于%f。 'f'代表'固定点',而不是'浮动'。看看https://developer.apple.com/library/ios/documentation/cocoa/conceptual/Strings/Articles/formatSpecifiers.html。 – fishinear 2014-10-27 14:31:21

0

气压计通过压力变化计算相对高度,因此天气的变化会使压力发生变化并改变相对高度。