2011-10-05 52 views
6

Tôi nhận được vĩ độ/kinh độ của nhiều nhà hàng từ một máy chủ. Tôi muốn tính toán khoảng cách giữa mỗi nhà hàng và vĩ độ/kinh độ hiện tại của người dùng.Tính khoảng cách giữa vị trí của người dùng và vị trí cố định

+0

Bạn đã tìm thấy vị trí hiện tại của người dùng? hoặc, bạn có vấn đề tìm thấy điều đó? – EmptyStack

+0

cảm ơn vì đã trả lời tôi: tôi có vị trí hiện tại của người dùng và nhà hàng của tôi lat dài là mảng có thể thay đổi cách truy cập vào những thời gian dài này để tìm khoảng cách. – Surya

Trả lời

3

Một khi bạn có một danh sách địa điểm (cách này hay cách khác), bạn có thể những nhận được khoảng cách đến (hoặc từ) những bằng CoreLocation để tính toán này với distanceFromLocation:

2

Bạn có thể sử dụng API do Google cung cấp cho tương tự. The Google Distance Matrix API

Hoàn hảo cho việc tìm khoảng cách. Hy vọng điều đó sẽ hữu ích.

39

Bạn có thể sử dụng distanceFromLocation: phương pháp của CLLocation trả về khoảng cách tính bằng mét giữa hai CLLocation's.

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

cảm ơn vì đã trả lời tôi: tôi có các vị trí hiện tại của người dùng và các nhà hàng của tôi lat dài là mảng có thể thay đổi cách truy cập những lat dài này để tìm khoảng cách. – Surya

+0

Bạn chỉ có một mảng hoặc hai mảng cho lat và dài một cách riêng biệt? – EmptyStack

0

Swift 3

func calculateDistanceFromUser(location:CLLocation)->CLLocation!{ 
    if let userLocation = self.userUpdatedLocation{ //CLLocation 
     let meters = location.distance(from: userLocation) 
     return meters 
    } 
    return nil 
} 
Các vấn đề liên quan