如何从SQLite加载分组注释点

时间:2012-10-05 08:03:23

标签: ios sqlite mapkit

我有一个包含16000个注释的数据库。当用户缩小时,加载了太多点并且点重叠。我找到了一个带代码的过滤器,但是我想只从SQL加载一些点,而不是加载所有并在之后过滤它。我不知道iOS或其他解决方案中是否存在存储过程。

这是我的代码

iphoneScaleFactorLatitude = 3.3;
    float iphoneScaleFactorLongitude = 6.38;
    float latDelta  = self.mapView.region.span.latitudeDelta/iphoneScaleFactorLatitude;
    float longDelta = self.mapView.region.span.longitudeDelta/iphoneScaleFactorLongitude;

    NSMutableArray *shopsToShow = [[NSMutableArray alloc] initWithCapacity:0];
        for (int i=0; i<[placesToFilter count]; i++) {
            MKPointAnnotation *checkingLocation   = [placesToFilter objectAtIndex:i];
            CLLocationDegrees latitude  = [checkingLocation coordinate].latitude;
            CLLocationDegrees longitude = [checkingLocation coordinate].longitude;

            bool found=FALSE;

            for (MKPointAnnotation *tempPlacemark in shopsToShow) {
                if(fabs([tempPlacemark coordinate].latitude-latitude) < latDelta &&
                   fabs([tempPlacemark coordinate].longitude-longitude) <longDelta ){
                    [self.mapView removeAnnotation:checkingLocation];
                    found = TRUE;
                    break;
                }
            }

            if (!found){
                [shopsToShow addObject:checkingLocation];
                [self.mapView addAnnotation:checkingLocation];
            }
        }

但是它们加载了太多的点,我的问题是我不想加载所有的点,因为每个chagement我必须使用算法进行排序。

0 个答案:

没有答案