посчитать номер в видимом прямоугольнике mkmapkit - PullRequest
1 голос
/ 13 января 2012

Я создал один вид карты Google, используя MK Mapkit, и я пометил выводы в разных местах, теперь я хочу рассчитать количество выводов на видимом прямоугольнике при просмотре карты, а также при масштабировании вида карты?

Спасибо заранее.

Ответы [ 3 ]

6 голосов
/ 13 января 2012

Метод MKMapView annotationsInMapRect: даст вам набор аннотаций в данном прямоугольнике карты.

Чтобы получить те, которые в данный момент видны, передайте ему свойство visibleMapRect вида карты.

Чтобы определить, какие аннотации видны после увеличения, уменьшения или панорамирования, вызовите этот метод в методе делегата regionDidChangeAnimated:

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
    NSSet *annSet = [mapView annotationsInMapRect:mapView.visibleMapRect];
    NSLog(@"regionDidChangeAnimated: annSet count = %d", annSet.count);
}
0 голосов
/ 26 февраля 2015

Предполагая, что у вас есть ViewController с mapView в качестве подпредставления.

- (void)someMethod
{
    NSArray *visibleAnnotations = [[self.mapView annotationsInMapRect:self.mapView.visibleMapRect] allObjects];
    NSUInteger VisibleAnnotationCounts = visibleAnnotations.count;
...
}

Вы также можете добавить к правильному методу делегата MKMapView

{
...
    NSArray *visibleAnnotations = [[mapView annotationsInMapRect:mapView.visibleMapRect] allObjects];
    NSUInteger VisibleAnnotationCounts = visibleAnnotations.count;
...
}
0 голосов
/ 13 января 2012

Нет.Пин может быть посчитан следующим методом делегата

- (MKAnnotationView *) mapView: (MKMapView *) mapView1 viewForAnnotation: (id) аннотация

{

Count ++NSLog (@ "Count:% d", count);

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...