我之前问过如何显示不同的markerInfoWindow in this question, 现在我在用户点击左上角的按钮时尝试删除特定标记。
首先在.h文件中:
NSMutableArray *ADSMarray;
GMSMarker *adsMarker;
然后我创建了这样的广告标记:
for (int l=0 ; l<self.ADS.count; l++) {
CLLocationCoordinate2D pos = CLLocationCoordinate2DMake([[[self.ADS objectAtIndex:l] objectForKey:@"lati"] doubleValue],[[[self.ADS objectAtIndex:l] objectForKey:@"longi"] doubleValue]);
NSLog(@"Ads:: %f",[[[self.ADS objectAtIndex:l] objectForKey:@"longi"] doubleValue]);
adsMarker = [[GMSMarker alloc]init];
adsMarker.position=pos;
//marker.infoWindowAnchor = CGPointMake(0.44f, 0.45f);
adsMarker.draggable = NO;
adsMarker.appearAnimation=YES;
NSMutableArray*tempArray = [[NSMutableArray
alloc] init];
[tempArray addObject:@"ADS"];
[tempArray addObject:[self.ADS objectAtIndex:l]];
adsMarker.userData = tempArray;
adsMarker.map = mapView_;
adsMarker.icon=[GMSMarker markerImageWithColor:[UIColor blueColor]];
}
然后在IBAction
删除它们我写道:
for (int i =0; i<self.ADS.count; i++) {
// adsMarker.map = nil;
[adsMarker setMap:nil];
}
答案 0 :(得分:2)
添加标记存储对它的引用。然后,当您想要删除它时,将其map属性设置为nil - 这将从地图中删除它。
答案 1 :(得分:2)
如果您想删除 MapView 中的所有标记,您可以使用已在 GSM 中构建的clear
方法.. < / p>
示例:
[self.mapView clear];
链接: Remove a marker
如果要删除所有具有特定颜色的标记,如果用户单击蓝色标记按钮,则可以使用此代码:
NSArray *blueMarkers = @[ markerBlue1, markerBlue2 ];
NSArray *greenMarkers = @[ markerGreen1, markerGreen2 ];
NSArray *purpleMarkers = @[ markerPurple1, markerPurple2 ];
for (GMSMarker *marker in blueMarkers ){
marker.map = nil;
}
答案 2 :(得分:0)
删除所有标记
mapView.clear()
删除特定标记
myMarker.map = nil