2013-08-06 6 views
0

Построение приложения iPhone для бизнеса с несколькими местоположениями. У меня есть карта, которая показывает все местоположения, и я получил ее, чтобы показать местоположения на карте. Вы можете увидеть все местоположения, которые я указал. Проблема заключается в том, что мне нужно, чтобы она показывала ближайшее место сначала до текущего местоположения клиента.Mapview Showing Ближайшее место

Ключевые пункты: 1. Используя список свойств (config.plist), укажите местоположения. 2. Он показывает синюю точку для текущего местоположения, и это точно. При масштабировании и выборе любого местоположения, которое у меня есть, оно настроено на то, чтобы перевести вас на карты Google, и все это точно от текущего местоположения до этого конкретного местоположения. 3. Это для iPhone, использующего, конечно, xcode.

Спасибо.

ответ

0

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

1

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

-(YourModel*)getClosestLocation 
{ 
    CLLocation *myLocation = currentLocation //This is the current location you should get from the GPS 
    NSArray *allLocations = myModelArray; //array with all locations you want to compare 

    YourModel *closestLocation = nil; 
    CLLocationDistance closestDistance = CGFLOAT_MAX; 

    for (YourModel* model in allLocations) 
    { 
     CLLocation *modelLocation = [[CLLocation alloc] initWithLatitude:model.latitude longitude:model.longitude]; 
     CLLocationDistance distance = [myLocation distanceFromLocation:modelLocation]; 
     if (distance < closestDistance) { 
      closestLocation = modelLocation; 
      closestDistance = distance; 
     } 
    } 

    return closestLocation; 
} 

, пожалуйста, сообщите нам, если это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^