我有一个存储来自webservice的数据的数组。数据包含多个位置。 移动地图中心时,阵列会更新。它显示基于地图中心的引脚。我想要做的是删除我在地图上分配的那些旧引脚而不删除所有标记,如果存储了新引脚,则分配它们而不再添加所有引脚。
提前致谢。
这是我的代码。
if([tempOLDArr count]> 0){
for (int i = 0; i<[appdelegate.eventsArray count]; i++) {
eventsWebService *temp = [appdelegate.eventsArray objectAtIndex:i];
if (i<[tempOLDArr count]) {
if ([temp.eventID isEqualToString:[[tempOLDArr objectAtIndex:i]eventID]]) {
}
else {
[tempNEWArr addObject:[appdelegate.eventsArray objectAtIndex:i] ];
}
}
else if(i>=[tempOLDArr count]){
[tempNEWArr addObject:[appdelegate.eventsArray objectAtIndex:i] ];
}
}
if ([tempNEWArr count]>0) {
[self creatingAnnotation:tempNEWArr];
}
}
else {
tempOLDArr = appdelegate.eventsArray;
[self creatingAnnotation:tempOLDArr];
}
这是我绘制这些标记的代码
- (void)creatingAnnotation:(NSArray *)eventsArr {
for(int i=0;i<[eventsArr count];i++)
{
HomeEventLat = [[appdelegate.eventsArray objectAtIndex:i]eventLat];
HomeEventlong = [[appdelegate.eventsArray objectAtIndex:i]eventLong];
double pickuplat = [HomeEventLat doubleValue];
double pickuplng = [HomeEventlong doubleValue];
CLLocation * loca=[[CLLocation alloc]initWithLatitude:pickuplat longitude:pickuplng];
CLLocationCoordinate2D coordi=loca.coordinate;
eventMarker = [[CustomGoogleMarker alloc]init];
eventMarker.position = CLLocationCoordinate2DMake(pickuplat, pickuplng);
eventMarker = [CustomGoogleMarker markerWithPosition:coordi];
eventMarker.snippet = NO;
eventMarker.icon = [UIImage imageNamed:@"map-pin-icon"];
eventMarker.tappable = YES;
eventMarker.marker_description = [[appdelegate.eventsArray objectAtIndex:i]eventDetail];
eventMarker.marker_distance = [[appdelegate.eventsArray objectAtIndex:i]eventdistance];
eventMarker.markerID = [[appdelegate.eventsArray objectAtIndex:i]eventID];
eventMarker.marker_joinedNo = [[appdelegate.eventsArray objectAtIndex:i]eventJoinedNo];
eventMarker.marker_price = [[appdelegate.eventsArray objectAtIndex:i]eventPrice];
eventMarker.marker_commentsNo = [[appdelegate.eventsArray objectAtIndex:i]eventCommentsNo];
eventMarker.marker_address = [[appdelegate.eventsArray objectAtIndex:i]eventAddress];
eventMarker.ID = [NSString stringWithFormat:@"%d",i];
// eventMarker.appearAnimation = kGMSMarkerAnimationPop;
NSString *markerLabels = [[appdelegate.eventsArray objectAtIndex:i]labelsList];
NSLog(@"%@",markerLabels);
eventMarker.marker_label = markerLabels;
eventMarker.marker_username = [[appdelegate.eventsArray objectAtIndex:i]user];
eventMarker.marker_time = [[appdelegate.eventsArray objectAtIndex:i]eventTime];
eventMarker.marker_image = [[appdelegate.eventsArray objectAtIndex:i]eventimage];
// eventMarker.title = [[appdelegate.eventsArray objectAtIndex:i]eventsID];
//
// [self.mapView clear];
eventMarker.map = self.mapView;
//
//
[markerDetail addObject:[appdelegate.eventsArray objectAtIndex:i]];
}
[_mapView animateWithCameraUpdate:[GMSCameraUpdate fitBounds:bounds withPadding:10]];
}