2013-08-06 3 views
0

여러 위치의 비즈니스를위한 iPhone 앱을 제작합니다. 나는 모든 위치를 보여주는 mapview를 가지고 있는데, 나는 그것이지도상의 위치를 ​​보여주기 위해 작동하도록했다. 확대 축소하면 지정한 모든 위치가 표시됩니다. 문제는 가장 가까운 위치를 고객의 현재 위치에 먼저 표시해야하는 것입니다.Mapview 가장 가까운 위치를 표시

요점 : 1. property-list (config.plist)를 사용하여 위치를 지정하십시오. 2. 현재 위치의 파란색 점이 정확하며 정확합니다. 축소 및 선택시 Google지도로 이동하도록 설정 한 위치를 선택하면 현재 위치에서 특정 사업장까지 정확합니다. 3. 물론 xcode를 사용하는 iPhone 용입니다.

감사합니다.

답변

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; 
} 

도움을 주시면 의견을 보내 주시기 바랍니다.

관련 문제