Mapview显示最近的位置

时间:2013-08-06 22:00:14

标签: iphone ios mkmapview currentlocation

为具有多个位置的商家构建iPhone应用。我有一个显示所有位置的mapview,我让它工作以显示地图上的位置。缩小您可以看到我指定的所有位置。问题是我需要它首先显示最接近客户当前位置的位置。

要点: 1.使用property-list(config.plist)指定位置。 2.它确实显示当前位置的蓝点,这是准确的。当缩小并选择我设置的任何位置时,它会将您带到谷歌地图,这从当前位置到特定的营业地点都是准确的。 3.这适用于iPhone当然使用xcode。

感谢。

2 个答案:

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

请提供一些反馈,如果有帮助的话。

答案 1 :(得分:0)

这看起来非常简单,遍历位置,计算到当前位置的距离,找到最短的位置(在迭代期间跟踪它),将地图设置为缩放以显示用户位置和最近位置的边界框。 / p>