0

我正在尝试将 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 );

}
4

1 回答 1

0

上面的代码似乎是正确的。我错过了计算区域, xM = 0 , yM=0 是 NW 角 xM = 2 , yM=2 是 SE 角 xM = 1 , yM=1 是中心

于 2013-08-14T05:26:48.647 回答