2012-08-02 61 views
1

我在CLLocation distanceFromLocation中遇到了一些问题。我有下面的代码,格式化为帮助调试,明确分配两个新的位置等。无论哪种方式,两个几乎相同的位置导致巨大的差距,但只是有时。CLLocation distanceFromLocation large value

代码:

CLLocation *loc = [LightweightLocationTracker sharedLocationTracker].lastLocation; 
if (loc) 
{ 
    CLLocation *myLoc = [[CLLocation alloc] initWithLatitude:loc.coordinate.latitude longitude:loc.coordinate.longitude]; 
    CLLocation *productLoc = [[CLLocation alloc] initWithLatitude:self.productToView.latitude longitude:self.productToView.longitude];   
    CLLocationDistance dist = [myLoc distanceFromLocation:productLoc]; 

    NSLog(@"myLoc.coordinate.latitude %f", myLoc.coordinate.latitude);   
    NSLog(@"myLoc.coordinate.longitude %f", myLoc.coordinate.longitude);     
    NSLog(@"productLoc.coordinate.latitude %f", productLoc.coordinate.latitude); 
    NSLog(@"productLoc.coordinate.longitude %f", productLoc.coordinate.longitude); 
    NSLog(@"dist %f", dist);   
    NSLog(@"%1.1f km", dist); 
} 

一个运行TTY:

[] tapped main 
[] myLoc.coordinate.latitude 52.369200 
[] myLoc.coordinate.longitude 13.941100 
[] productLoc.coordinate.latitude 52.364400 
[] productLoc.coordinate.longitude 13.360600 
[] dist 39542.386770 
[] 39542.4 km 

另一个运行TTY:

[] myLoc.coordinate.latitude 52.369200 
[] myLoc.coordinate.longitude 13.941100 
[] productLoc.coordinate.latitude 52.369202 
[] productLoc.coordinate.longitude 13.941100 
[] dist 0.184915 
[] 0.2 km 

没有看到的罪魁祸首......

回答

3

好,distanceFromLocation回报会见ERS。所以30k的东西只有30km。听起来对我来说完全合法。

+0

谢谢。显然为时已晚,试图做到这一点。在另一个版本中甚至有dist/1000.0f。哦,尴尬! – laverick 2012-08-03 06:21:56

相关问题