计算用户位置与固定位置之间的距离

时间:2011-10-05 08:33:46

标签: objective-c ios cocoa-touch geolocation latitude-longitude

我从服务器收到多家餐馆的纬度/经度。我想计算每个餐馆与用户当前纬度/经度之间的距离。

4 个答案:

答案 0 :(得分:39)

您可以使用 CLLocation distanceFromLocation:方法,它返回两个 CLLocation 之间的距离(米)。

CLLocation *currentLoc = /* Assume you have found it */;
CLLocation *restaurantLoc = [[CLLocation alloc] initWithLatitude:restaurantLat longitude:restaurantLng];
CLLocationDistance meters = [restaurantLoc distanceFromLocation:currentLoc];
// Go ahead with this

答案 1 :(得分:3)

一旦你有了一个地方列表(一种方式或另一种方式),你可以使用CoreLocation通过distanceFromLocation计算距离(或来自)这些距离:

答案 2 :(得分:2)

您可以使用Google提供的相同API。 The Google Distance Matrix API

非常适合寻找距离。 希望它有所帮助。

答案 3 :(得分:0)

Swift 3

func calculateDistanceFromUser(location:CLLocation)->CLLocation!{
    if let userLocation = self.userUpdatedLocation{ //CLLocation
        let meters = location.distance(from: userLocation)
        return meters
    }
    return nil
}