Найти ближайшее местоположение из существующих координат mapkit - PullRequest
4 голосов
/ 01 декабря 2011

Я нахожусь в процессе разработки приложения для iphone (цель C) для клиента, у которого есть несколько магазинов.У меня есть координаты (широта, длина) всех магазинов (20) в массиве.

В данный момент я думаю о циклическом просмотре массива координат магазинов и получаю расстояние от текущего местоположения пользователя до местоположения магазина, а затем добавляю их в массив и выполняю сортировку на минимальном расстоянии.

Это правильный подход или очень ресурсоемкий?

Ближайшим вопросом о SOF был этот, но он находится на python: извлечение ближайших магазинов

Заранее спасибо за совет.

1 Ответ

6 голосов
/ 01 декабря 2011

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

Ниже приведен метод определения расстояния ...

-(float)kilometresBetweenPlace1:(CLLocationCoordinate2D) currentLocation andPlace2:(CLLocationCoordinate2D) place2 
{
    CLLocation *userLoc = [[CLLocation alloc] initWithLatitude:currentLocation.latitude longitude:currentLocation.longitude];
    CLLocation *poiLoc = [[CLLocation alloc] initWithLatitude:place2.latitude longitude:place2.longitude];  
    CLLocationDistance dist = [userLoc getDistanceFrom:poiLoc]/(1000*distance);
    NSString *strDistance = [NSString stringWithFormat:@"%.2f", dist];
    NSLog(@"%@",strDistance);
    return [strDistance floatValue];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...