2012-08-02 63 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

相關問題