我正在尝试计算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模拟器的调试菜单中的location选项。
模拟器可能是导致此问题的原因,还是我的代码中遗漏了某些东西?
最佳答案
因此,这是一个潜在的问题:您是否有机会对这些位置进行反向地理编码?因为如果这样做,我会痛苦地发现,您将失去高度。如果考虑一下,这是有道理的,但是对于他们来说,更好的设计可能是将反向地理编码的位置建模为继承GPS衍生位置的所有属性。它不是。因此,我最终要做的是一个外部类,该类获得了LM的位置,提取了海拔高度,然后将其注入到最终的“ Address”类中。
关于ios - CLLocationManager计算高程增益,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22770509/