2014-11-20 2 views
1

Я пытаюсь вычислить и вернуть расстояние между двумя точками, и я получаю смешное число. Я пробовал как пользовательский метод 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' код передает' широта' для параметра 'longitude'. – Anna

+0

Я идиот. Это было первое, что я проверил, и полностью пропустил это. Спасибо!!!!! – user3712524

ответ

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

"расстояние" вернется на метр. Этот код работал для меня :)

Смежные вопросы