Search code examples
iphonecocoa-touchcllocationmanager

CLLocationCoordinate2D to CLLocation


I have the following loop in my viewDidLoad:

for(int i=1; i<[eventsArray count]; i++) {
    NSArray *componentsArray = [[eventsArray objectAtIndex:i] componentsSeparatedByString:@","];
    if([componentsArray count] >=6) {
        Koordinate *coord = [[Koordinate alloc] init];
        coord.latitude = [[componentsArray objectAtIndex:0] floatValue];
        coord.longtitude = [[componentsArray objectAtIndex:1] floatValue];
        coord.magnitude = [[componentsArray objectAtIndex:2] floatValue];
        coord.depth = [[componentsArray objectAtIndex:3] floatValue];
        coord.title = [componentsArray objectAtIndex:4];
        coord.strasse = [componentsArray objectAtIndex:5];
        coord.herkunft = [componentsArray objectAtIndex:6];
        coord.telefon = [componentsArray objectAtIndex:7];
        coord.internet = [componentsArray objectAtIndex:8];
        [eventPoints addObject:coord];
    }
}

coord is of Type CLLocationCoordinate2D

How can I use coord in the following method? I need this to get distance between two coords:

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation {

}

Solution

  • CLLocation has an init method that takes a latitude and longitude:

    -(id)initWithLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude
    

    Then use the following method to get the distance between two CLLocation objects:

    - (CLLocationDistance)getDistanceFrom:(const CLLocation *)location