distanceFromLocation - Calculate distance between two points distanceFromLocation - Calculate distance between two points ios ios

distanceFromLocation - Calculate distance between two points


Try this instead:

CLLocationDistance meters = [newLocation distanceFromLocation:oldLocation];

The method you're trying to use is a method on a CLLocation object :)


The distance is calculated between 2 CLLocations and not between to coordinates.

You need to use these coordinates to get the CLLocations for the respective coordinates using the following line of code

CLLocation *newLocation = [[CLLocation alloc] initWithCoordinate: newCoordinate altitude:1 horizontalAccuracy:1 verticalAccuracy:-1 timestamp:nil];

Similarly for the other coordinate and then you can calculate the distance between these two locations using the following line of code

CLLocationDistance kilometers = [newLocation distanceFromLocation:oldLocation] / 1000;

Hope this will help you.

Update: Swift 3.0

let distanceKiloMeters = (newLocation.distance(from: oldLocation))/1000


In Swift

Let's create a method function that calculates distance between two locations:

 func distanceBetweenTwoLocations(source:CLLocation,destination:CLLocation) -> Double{        var distanceMeters = source.distanceFromLocation(destination)        var distanceKM = distanceMeters / 1000        let roundedTwoDigit = distanceKM.roundedTwoDigit        return roundedTwoDigit    }

If you want only two digits:

extension Double{    var roundedTwoDigit:Double{        return Double(round(100*self)/100)        }    }