【发布时间】:2013-10-03 10:08:19
【问题描述】:
我有跟踪用户移动的应用程序。我存储所有相关数据 lat/lng/alt 等。
我正在尝试添加像 runkeeper 这样的高程,只是没有图形我只需要获取高程值。
在我的 .h 文件中:
@property (nonatomic) double netElevationLoss;
@property (nonatomic) double netElevationGain;
@property (nonatomic) double netElevationChange;
在我的 .m 文件中:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
double elevationChange = oldLocation.altitude - newLocation.altitude;
if (elevationChange < 0)
{
netElevationLoss += fabs(elevationChange);
}
else
{
netElevationGain += elevationChange;
}
netElevationChange = netElevationGain - netElevationLoss;
...
我不知道这种计算方法是否正确。
我已经对其进行了测试,例如 alt 是 182.53 和 netElevationChange 是 -182.53。
也许这很好,但也许我错过了什么知道我在这里做错了什么?
【问题讨论】:
-
任何帮助...我提供的信息太少了吗?
-
您是要绘制每个点的高程图还是要获取每个点之间的变化?
-
我不知道我只是想获得与 runkeeper 应用程序相同的效果。其实我不明白这两者之间的区别。直到今天,我什至不知道海拔高度。
-
如果您还想存储纬度/经度和海拔高度,为什么不直接从
newLocation获取它并跳过这些计算? -
等等你想说我不需要在 didUpdateLocation 中进行这些计算吗?我已经在我的数据库中存储了 lat/lng/altitude。那么这个值(海拔)是什么?如何让它显示出来?
标签: iphone ios objective-c core-location cllocationmanager