Fer*_*ndo 14 objective-c iphone-sdk-3.0
我有大约400个MKAnnotationView同时加载到MKMapView中.
我知道这不是什么好事,它有点慢,我想以"正确"的方式做到这一点.
我用中心坐标缩放地图:
MKCoordinateSpan span;
span.latitudeDelta = 0.8;
span.longitudeDelta = 0.8;
MKCoordinateRegion region;
region.span = span;
region.center = self.selectedCounty.coordinate;
[mapView setRegion:region animated:TRUE]; 
我只希望加载注释,可能是在该地区可见.
我有一个自定义MKAnnotation,简称为"注释",带有CLLocationCoordinate2D-和title-property.
我只是想在MKMapView上加载"可见区域"的注释,因此并非所有注释都同时加载.当MKMapView上的"可见区域"发生变化时,我当然希望为该区域加载注释.
我知道MKMapView有一个委托方法,它在区域变化时运行.
但是,我怎么知道我应该为该区域加载哪些注释?
Shm*_*idt 36
MKMapRect visibleMapRect = mapView.visibleMapRect;
NSSet *visibleAnnotations = [mapView annotationsInMapRect:visibleMapRect];
The*_*der 21
MKMapRectContainsPoint会告诉您它是否可见.
visibleCount = 0;
for (MyAnnotation *annotation in mapView.annotations) {
    if (MKMapRectContainsPoint(mapView.visibleMapRect, MKMapPointForCoordinate(annotation.coordinate)))
    {
        visibleCount++;
    }
}
如果您有很多注释,我建议在后台线程上执行此方法.但您可以确定它是否在地图中可见
Ser*_*amá -2
您可以获得地图区域跨度和中心,并根据注释的位置,您可以检查该区域内是否有任何注释...也许它已经在 [mapview isAnnotationVisible] 之类的东西中实现...但您会最终必须检查每个注释......
| 归档时间: | 
 | 
| 查看次数: | 8418 次 | 
| 最近记录: |