2011-03-08 79 views
0

`你好,我使用distanceFromLocation方法时,它总是返回零的问题。CLLocation distanceFromLocation always return 0

这里是我的代码片段:

NSArray *arrATMItem = [arrATMs objectAtIndex:indexPath.row]; 
cell.textLabel.text = [arrATMItem objectAtIndex:0]; 

float lat = [[arrATMItem objectAtIndex:1] floatValue]; 
float lon = [[arrATMItem objectAtIndex:2] floatValue]; 
CLLocation *branchLoc = [[CLLocation alloc] initWithLatitude:lat longitude:lon]; 

CLLocationDistance dist = [currentLocation distanceFromLocation:branchLoc]; 
NSLog(@"distance = %d",dist); 
cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"%d m", dist]; 

我还检查了branchLoc和currentLoc实例具有正确的价值 这里的branchLog LAT的例子值:-6.17503957长:106.79891717 和currentLoc值LAT :-6.17603957长:106.79891717

branchLoc值从plist文件中检索,而currentLoc是从我的委托文件中定义的CLLocation locationUpdate方法的CLLocation类中获取的。

我试过使用%f,它也返回类似于0.00000 的任何想法,我做错了什么?

谢谢

+0

我为其他人添加此评论,因为这是发生在我身上的事情。我正在使用我制作的测试位置。然而,他们是无效的(我混合了拉特和长)。您可以使用函数CLLocationCoordinate2DIsValid(currentLocation.coordinate)来确定坐标是否有效。 – Roberto 2016-02-11 18:03:42

回答

0

尝试使用double(或CLLocationDegrees)经度和纬度。

相关问题