2017-10-18 3 views
0

Ich versuche, alle vorhandenen Marker aus Google Maps zu entfernen, können wir durch map.clear tun, aber ich möchte nicht alles entfernen (Polyline, Polygone) auf der Karte, ich möchte nur MarkerSo entfernen Sie alle Marker von googlemap nicht mapview.clear (ios objective-c)

ich schaffe Marker basierend auf Array zählen

-(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"]; 

    } 
} 
+0

machen, spezifischen Marker 'nil' löschen. –

+0

Wenn ich marker = nil oder marker.map = nil gesetzt habe, wird nur der letzte Marker entfernt –

+0

Nein, dafür müssen Sie ID für jeden Marker setzen und dann diesen bestimmten Marker holen und dann nil. –

Antwort

0

Versuchen Sie diesen Code seine Arbeit nur für mich entfernen.

globale Array erstellen

NSMutableArray *removalMarkerArray; 

nun alle Marker in globaler Array

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]; 

    } 
    } 

Dann fügen Sie, wo Sie wollen, dass alle Marker

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