Ios 使用坐标对最近的位置进行排序?

Ios 使用坐标对最近的位置进行排序?,ios,objective-c,mkmapview,mapkit,cllocationdistance,Ios,Objective C,Mkmapview,Mapkit,Cllocationdistance,我有一个坐标为 如果用户选择特定位置,我希望使用坐标建议附近的位置列表 我可以通过放置循环并搜索距离以下代码的所有位置来实现这一点 for(i=0;i<locations.count;i++) CLLocation *locA = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1]; CLLocation *locB = [[CLLocation alloc] initWithLatitude:lat2 longi

我有一个坐标为
如果用户选择特定位置,我希望使用坐标建议附近的位置列表 我可以通过放置循环并搜索距离以下代码的所有位置来实现这一点

  for(i=0;i<locations.count;i++)
 CLLocation *locA = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1];

 CLLocation *locB = [[CLLocation alloc] initWithLatitude:lat2 longitude:long2];

 CLLocationDistance distance = [locA distanceFromLocation:locB];
// if(distance<10)
 //{
 //show the pin
// }

用于(i=0;i您应该过滤内容以减少从数据库中提取的内容量。您需要定义“附近”在您的情况下的含义,计算框外的所有内容都不是“附近”的lat/long边界框,并使用框最小值和最大lat/long值排除不匹配的内容。这是SQL查询的一部分o效率很高


现在,您的问题循环逻辑开始发挥作用。方法很好,但使用您自己的循环可能不是最好的。取而代之的是使用
sortedarrayusingparator:
sortedArrayUsingFunction:context:

什么数据库?对象是什么?您的代码使用未定义的变量,它们是什么?@Wain我正在使用SQL数据库我有一个关于每个地名、纬度、经度和类别的详细信息。我把未定义的变量放在我的想法上,我必须计算每一个地点对象的距离,并检查距离以使它在地图上表示感谢,在我的情况下“附近”意味着2英里以内的所有地点也考虑<代码> nSPReDATA
对于搜索数据,循环从来都不是一种方法。@Sammio2,我的回答的全部要点是所有筛选都是用SQL而不是代码完成的,因此不需要谓词(SQL筛选器效率更高)。还建议替换用于排序的循环(虽然这大部分只是保存代码,因为排序将在内部迭代…)。啊,是的,对不起,我完全误解了最初的问题,假设SQL查询中已经进行了一定量的筛选。我的错误!