Узнать расстояние между 2 точками

Рейтинг: 0Ответов: 1Опубликовано: 30.03.2015

Смотрите, есть такая ф-ция, которая определяет местоположение пользователя,

    - (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation{
    /* Получена информация о новом местоположении. */
    NSLog(@"Latitude = %f", newLocation.coordinate.latitude);
    NSLog(@"Longitude = %f", newLocation.coordinate.longitude);
}
- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error{
    /* Не удалось получить информацию о местоположении пользователя. */
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    if ([CLLocationManager locationServicesEnabled]){
        self.myLocationManager = [[CLLocationManager alloc] init];
        self.myLocationManager.delegate = self;
        [self.myLocationManager startUpdatingLocation];

и есть вот такая ф-ция, которая считает расстояние между двумя точками

    CLLocation *location1 = [[CLLocation alloc] initWithLatitude:59.957069 longitude:30.323013];
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:60.050043 longitude:30.345783];

float betweenDistance=[location1 distanceFromLocation:location2];

NSLog(@"Distance is %f km",betweenDistance/1000);

Подскажите как мне вбить вместо координат location1 местоположение пользователя, что бы считать расстояние не от точки до точки, а от пользователя до точки?

UPDATE:

   #import "TestViewController.h"
#import <CoreLocation/CoreLocation.h>

@interface TestViewController () <CLLocationManagerDelegate>
@property (strong, nonatomic) IBOutlet UITextField *testUserPosition;
@property (nonatomic, strong) CLLocationManager *myLocationManager;
@property (nonatomic,strong) CLLocation *startLocation;
@end

@implementation TestViewController
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
    _startLocation = newLocation;
}
- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error{
    /* Не удалось получить информацию о местоположении пользователя. */
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    if ([CLLocationManager locationServicesEnabled]){
        self.myLocationManager = [[CLLocationManager alloc] init];
        self.myLocationManager.delegate = self;
        [self.myLocationManager startUpdatingLocation];
CLLocation *startLocation = self.myLocationManager.location;
        CLLocation *location2 = [[CLLocation alloc] initWithLatitude:60.050043 longitude:30.345783];

        float betweenDistance=[startLocation distanceFromLocation:location2];

        NSLog(@"Distance is %f km",betweenDistance/1000);
        NSString *exhibEmail = [NSString stringWithFormat:@"Distance is %f km",betweenDistance/1000];
        //int x = (@"Distance is %f km",betweenDistance/1000);

        UIAlertView* alert = [[UIAlertView alloc] init];
        [alert setTitle:@"Заголовок alert"];
        [alert setMessage:exhibEmail];
        [alert addButtonWithTitle:@"Просто кнопка"];
        [alert setCancelButtonIndex:0];
        [alert show];
     } else {
        /* Геолокационные службы не активизированы.
         Попробуйте исправить ситуацию: например предложите пользователю
         включить геолокационные службы. */
        NSLog(@"Location services are not enabled");
    }
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end

Ответы

Ответов пока нет.