Рассчитать расстояние между местоположением пользователя и фиксированным местоположением - PullRequest
6 голосов
/ 05 октября 2011

Я получаю широту / долготу нескольких ресторанов с сервера. Я хочу рассчитать расстояние между каждым рестораном и текущей широтой / долготой пользователя.

Ответы [ 4 ]

39 голосов
/ 05 октября 2011

Вы можете использовать distanceFromLocation: метод CLLocation , который возвращает расстояние в метрах между двумя 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
3 голосов
/ 05 октября 2011

Когда у вас есть список мест (так или иначе), вы можете получить расстояние до них (или от них), используя CoreLocation, чтобы рассчитать это с помощью distanceFromLocation:

2 голосов
/ 05 октября 2011

Вы можете использовать API, предоставленный Google для того же. Google Matrix API

Идеально подходит для определения расстояния.Надеюсь, это поможет.

0 голосов
/ 16 августа 2017

Свифт 3

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