I use removeAnnotations
to remove my annotations from mapView
but same it remove user location ann. How can I prevent this, or how to get user ann back to view?
NSArray *annotationsOnMap = mapView.annotations; [mapView removeAnnotations:annotationsOnMap];
Update:
When I tried with the iOS 9 SDK the user annotation is no longer removed. You can simply use
mapView.removeAnnotations(mapView.annotations)
Historical answer (for apps that run on iOS before iOS 9):
Try this:
NSMutableArray * annotationsToRemove = [ mapView.annotations mutableCopy ] ; [ annotationsToRemove removeObject:mapView.userLocation ] ; [ mapView removeAnnotations:annotationsToRemove ] ;
EDIT: Swift version
let annotationsToRemove = mapView.annotations.filter { $0 !== mapView.userLocation } mapView.removeAnnotations( annotationsToRemove )
To clear all the annotations from the map:
[self.mapView removeAnnotations:[self.mapView annotations]];
To remove specified annotations from Mapview
for (id <MKAnnotation> annotation in self.mapView.annotations) { if (![annotation isKindOfClass:[MKUserLocation class]]) { [self.mapView removeAnnotation:annotation]; } }
Hope this may help you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With