我从服务器收到多家餐馆的纬度/经度。我想计算每个餐馆与用户当前纬度/经度之间的距离。
答案 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)
func calculateDistanceFromUser(location:CLLocation)->CLLocation!{
if let userLocation = self.userUpdatedLocation{ //CLLocation
let meters = location.distance(from: userLocation)
return meters
}
return nil
}