【发布时间】:2014-03-31 19:30:57
【问题描述】:
我正在尝试计算 CLLocationManager 的海拔增益。
这是我目前的代码:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *oldLocation = [locations objectAtIndex:[locations count] - 1];
CLLocation *location = [locations lastObject];
double elevationChange = oldLocation.altitude - location.altitude;
if (elevationChange > 0)
{
_netElevationGain += elevationChange;
}
我认为这段代码应该可以正常工作,但是当我测试它时,netElevationGain 始终为 0。我做了一些研究,似乎我正在使用 iOS 模拟器进行测试。我在 iOS 模拟器的调试菜单中使用位置选项。
可能是模拟器导致了这个问题,还是我的代码中遗漏了什么?
【问题讨论】:
-
添加更多信息。因此,您使用 GPX 文件设置了 2 个位置,并且从一个位置移动到另一个位置并期望看到海拔变化?
-
@rob 嗨,没错,但值始终为 0
-
是的,CLLocation 的高度在模拟器上总是为零。
标签: ios cllocationmanager