我试图将visibleMapRect分成9个单元格(3x3)。如果我的单元格有超过2个注释,我将删除它们并显示最多2个注释。我这样做是出于性能原因,因为我的一些用户可能会在世界各地传播成千上万的注释,并且当它们缩小时,试图显示数千个引脚没有意义并导致性能问题因此分而治之:)。我写下面的代码,当我移动地图时,我意识到我只看到从中心而不是东南角的注释。这样做的正确方法是什么?我怎样才能解决这个问题 ?
-(void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
{
int xM;
int yM;
MKMapRect SE_rect;
xM=1;yM=1;
SE_rect= MKMapRectMake( mapView.visibleMapRect.origin.x + mapView.visibleMapRect.size.width/3 * xM , mapView.visibleMapRect.origin.y + mapView.visibleMapRect.size.height/3 * yM, mapView.visibleMapRect.size.width/3, mapView.visibleMapRect.size.height/3);
NSLog(@"SE annotation count : %lu %d %d " ,(unsigned long)[mapView annotationsInMapRect:SE_rect].count,xM,yM );
}
答案 0 :(得分:0)
以上代码似乎是正确的。我想念计算区域, xM = 0,yM = 0是NW角 xM = 2,yM = 2是SE角 xM = 1,yM = 1是中心