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 に答える