为什么distanceFromLocation:方法返回一个荒谬的数字

为什么distanceFromLocation:方法返回一个荒谬的数字

问题描述:

我试图计算并返回两点之间的距离,我得到一个荒谬的数字。我已经尝试了用户定义的haversine方法和distanceFromLocation方法,并且它们都返回10282657.652 ...,其中lat = 32.60641072/lon = -85.48713530和lat = 32.605638和lon = -85.486890之间的距离。这些距离是否太近?为什么distanceFromLocation:方法返回一个荒谬的数字

CLLocation *startLocation = [[CLLocation alloc] initWithLatitude:currentLocation.coordinate.latitude  longitude:currentLocation.coordinate.latitude]; 

    CLLocation *endLocation = [[CLLocation alloc] initWithLatitude:_head.lattitude longitude:_head.longitude]; 
    double distance = [startLocation distanceFromLocation:endLocation]; 
    CLLocationCoordinate2D newCoordinate = [startLocation coordinate]; 
    CLLocationCoordinate2D oldCoordinate = [endLocation coordinate]; 
    double distance2 = [self distanceFrom:newCoordinate to:oldCoordinate]; 
    NSNumber *myDoubleNumber = [NSNumber numberWithDouble:distance2]; 

    _charLabel.text = [myDoubleNumber stringValue]; 
+3

也许这是因为对于'startLocation',代码传递'latitude'作为'longitude'参数。 – Anna 2014-11-20 21:57:30

+0

我是个白痴。那是我检查的第一件事,完全错过了。谢谢!!!!! – user3712524 2014-11-20 22:06:44

CLLocation *location1 = [[CLLocation alloc] initWithLatitude:lat1 longitude:lon1]; 
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:lat2 longitude:lon2]; 
CLLocationDistance distance= [location1 distanceFromLocation:location2]*1.09361; 

“距离” 将返回上计。 此代码对我有效:)