Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
563 views
in Technique[技术] by (71.8m points)

swiftui - How can I remove all annotations from a map using MapKit

I have tried using the RemoveAnnotation function, but I don't know how to remove them all

struct MapView: View {
    @State private var region = MKCoordinateRegion(
        center: CLLocationCoordinate2D(
            latitude: 25.7617,
            longitude: 80.1918
        ),
        span: MKCoordinateSpan(
            latitudeDelta: 100,
            longitudeDelta: 100
        )
    )
    

    var body: some View {
        Map(coordinateRegion: $region)
    } }
question from:https://stackoverflow.com/questions/66051821/how-can-i-remove-all-annotations-from-a-map-using-mapkit

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I'm using this extension

extension MKMapView {
        
        
        func removeAnnotationAndOverlay(annotation: MKAnnotation) {
            
            removeAnnotation(annotation)
            
            if overlays.count > 0 {
                
                if let overlay = overlays.first {
                    
                    removeOverlay(overlay)
                    
                }
                
            }
           
        }
        
        func removeAllOverlays() {
            
           
            removeOverlays(overlays)
                    
     
            
        }
        
        
        func removeAllAnnotations() {
            
               
            removeAnnotations(annotations)
                
    
        }
        
        func removeAllAnnotationsAndOverlays() {
            
            removeAllOverlays()
            
            removeAllAnnotations()
        }
    }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...