如何从googlemap中删除所有标记,而不是mapview.clear(ios objective-c)



我正在尝试从谷歌地图中删除现有的所有标记,我们可以通过map.clear来完成,但我不想删除地图上的所有内容(折线、多边形),我只想删除标记

我正在根据数组计数创建标记

-(void)annotationCreationForCoordinatesOfArray:(NSMutableArray *)array
{
     for (int i=0; i<array.count; i++)
    {
        CLLocationCoordinate2D position = CLLocationCoordinate2DMake([[[array objectAtIndex:i] objectForKey:@"latitude"] doubleValue], [[[array objectAtIndex:i] objectForKey:@"longitude"] doubleValue]);
        mark = [GMSMarker markerWithPosition:position];
        NSString *annoNumber = [NSString stringWithFormat:@"%i",i];
        mark.title = annoNumber;
        mark.map = _mapView;
        mark.tracksViewChanges = YES;
        mark.draggable = YES;
        mark.icon = [UIImage imageNamed:@"Mappin.png"];
    }
}

试试这段代码,它对我有用。

创建全局阵列

NSMutableArray *removalMarkerArray;

现在在全局数组中添加所有标记

   removalMarkerArray=[[NSMutableArray alloc]init];
 -(void)annotationCreationForCoordinatesOfArray:(NSMutableArray *)array{
    for (int i=0; i<array.count; i++){
    CLLocationCoordinate2D position = CLLocationCoordinate2DMake([[[array objectAtIndex:i] objectForKey:@"latitude"] doubleValue], [[[array objectAtIndex:i] objectForKey:@"longitude"] doubleValue]);
    mark = [GMSMarker markerWithPosition:position];
    NSString *annoNumber = [NSString stringWithFormat:@"%i",i];
    mark.title = annoNumber;
    mark.map = _mapView;
    mark.tracksViewChanges = YES;
    mark.draggable = YES;
    mark.icon = [UIImage imageNamed:@"Mappin.png"];
    [removalMarkerArray addObject:mark];
     }
  }

然后要清除所有标记的位置

  for (GMSMarker *marker in removalMarkerArray ){
        marker.map = nil;
   }

最新更新