我正在我的应用程序上开发MapView
。我显示my current location and also nearest people locations.
但是我的问题是我通过WebServices获取最近的人位置(latitude and longitude values
。我在MapView上显示了所有人的位置但是有些时候人数会增加,在那种情况下,我显示了我得到的人们的纬度和经度值,这个纬度和经度值每2秒刷新一次,通过使用这个代码,我在MapView上显示引脚。
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
上显示该人数
下图是我附近有三个成员的人
由我在MapView上显示三个人。但是我需要显示每当人们在MapView上自动减少时,它们会在MapView上消失。就像这张图片
上面的图片只有一个图钉,但我需要根据人们的纬度和经度值自动显示。如何删除不在我所在位置的人。可以请您建议我如何修改我的代码以自动显示在MapView上增加或减少。谢谢
答案 0 :(得分: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];
}
希望它可以帮助你......!