2015-05-21 5 views
0

Я разрабатываю MapView на моем приложении. Я показал my current location and also nearest people locations., но вот моя проблема: я получаю ближайший список людей (latitude and longitude values) через WebServices.And я отобразил все местоположения людей в MapView, но несколько раз Число людей увеличилось на в той ситуации, в которой я отображал все, что получаю значения широты и долготы людей, значения этой широты и долготы обновляются каждые 2 секунды, и, используя этот код, я выводю контакты на MapView.Проблема на MapView iOS

for (int y = 0; y <[lat count]; y++) 
    { 
     NSLog(@"MapView "); 

     marketAnnotation = [[MKPointAnnotation alloc]init]; 
     annotationCoord.latitude = [[lat objectAtIndex:y]floatValue]; 
     annotationCoord.longitude =[[lon objectAtIndex:y]floatValue]; 
     marketAnnotation.coordinate = annotationCoord; 
     [self.mapView addAnnotation:marketAnnotation]; 
     [marketLocations addObject:marketAnnotation]; 

     [mapView reloadInputViews]; 

    } 

, но я хочу показать, когда количество людей уменьшилось, мне нужно, чтобы отобразить только то, что количество людей на MapView

картинке ниже, я имел три человека, член рядом с мной

enter image description here

Я показал три человека на MapView. Но мне нужно отображать, когда люди будут уменьшаться на MapView автоматически, контакты будут исчезать на MapView. Like this pic

enter image description here

выше ПИК имеют только один штырь, но мне нужно, чтобы автоматически отображать в то время как на основе люди широты и долготы. как я могу удалить людей, которые не находятся рядом с моим местоположением. Можете ли вы предложить мне, как я могу изменить свой код, чтобы автоматически показывать на MapView либо увеличение, либо уменьшение. Спасибо

+0

Вы также можете удалить аннотации – Azat

ответ

0

Вам нужно удалить все аннотации старых местоположений, которые находятся в перед просмотром новых мест.

for (id<MKAnnotation> annotation in mapView.annotations) 
    { 
     if ([annotation isKindOfClass:[MKPointAnnotation class]]) 
     { 
      [mapView removeAnnotation:annotation]; 
     } 
    } 

//If empty locations then display current location 

[marketLocations removeAllObjects]; 

if([lat count]==0) 
{ 

      marketAnnotation = [[MKPointAnnotation alloc]init]; 
      annotationCoord.latitude = currentLocationLatitude; 
      annotationCoord.longitude =currentLocationLongitude; 
      marketAnnotation.coordinate = annotationCoord; 
      [self.mapView addAnnotation:marketAnnotation]; 
      [marketLocations addObject:marketAnnotation]; 
      [mapView reloadInputViews]; 

} 
for (int y = 0; y <[lat count]; y++) 
    { 
     NSLog(@"MapView "); 

     marketAnnotation = [[MKPointAnnotation alloc]init]; 
     annotationCoord.latitude = [[lat objectAtIndex:y]floatValue]; 
     annotationCoord.longitude =[[lon objectAtIndex:y]floatValue]; 
     marketAnnotation.coordinate = annotationCoord; 
     [self.mapView addAnnotation:marketAnnotation]; 
     [marketLocations addObject:marketAnnotation]; 

     [mapView reloadInputViews]; 

    } 

Надеюсь, это поможет вам ...!

+0

его рабочий, но последний контакт не должен удаляться на mapview @vidhyanand –

+0

Вы добавляете новые контакты с использованием местоположений. Тогда почему вы хотите, чтобы последний штырь не удалялся ..! – Vidhyanand

+0

Я получаю значения широты и долготы со стороны сервера, когда я получаю пустое значение широты и долготы в этой ситуации, я должен отображать только мое текущее местоположение @ Vidhyanand900 –

Смежные вопросы