From the user's current location, how would I change the color of the closest annotation to the user in the MKMapView?

I would like for the user of my app to know which annotation on the map is closest to them and to be able to show this by turning that specific annotation a different color. The current location of the user and annotations are already functioning correctly, but I have no idea how to mark the closest annotation to the user.

I have tried researching ways on how to do this, but have found no answers. Below is most of my current code file:

@IBOutlet weak var mapView: MKMapView!
@IBOutlet weak var courtAmountLabel: UIBarButtonItem!
@IBOutlet weak var mapButtonView: UIView!
@IBOutlet weak var MACOutlet: UIButton!


@IBAction func mapSwitch(_ sender: UISwitch) {
    if (sender.isOn == true) {
        mapView.mapType = MKMapType.standard
    }
    else {
        mapView.mapType = MKMapType.hybrid
    }

}


var tappedAnnotation : MKAnnotation?


  func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {


    if annotation is MKUserLocation {
        return nil
    }

    if let view = mapView.dequeueReusableAnnotationView(withIdentifier: "Annotation") {
        view.annotation = annotation
        return view as! MKPinAnnotationView
    } else {
        let view = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "Annotation")
        view.isEnabled = true
        view.canShowCallout = true
        view.rightCalloutAccessoryView = UIButton(type: .detailDisclosure)
        return view
    }


}


func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
    //use above with callout pins
    tappedAnnotation = view.annotation
    performSegue(withIdentifier: "showAnnotationDetails", sender: nil)


}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showAnnotationDetails", let dest = segue.destination as? AnnotationDetails {
        dest.annotation = tappedAnnotation
    }
}



func createAnnotations ( _ annotations : [String:[String:Any]] ) {
    mapView.removeAnnotations(mapView.annotations)
    for (_,values) in annotations {
        if let latDouble = values["latitude"] as? Double, let longDouble = values["longitude"] as? Double {
            let lat = CLLocationDegrees( latDouble )
            let long = CLLocationDegrees( longDouble )
            let coord = CLLocationCoordinate2D(latitude: lat, longitude: long)
            let annotation = MKPointAnnotation()
            annotation.coordinate = coord
            annotation.title = values["name"] as? String ?? ""
            annotation.subtitle = values["info"] as? String ?? ""
            mapView.addAnnotation(annotation)
            courtAmountLabel.title = "\(mapView.annotations.count-1) Courts"
        }
    }
}

let manager = CLLocationManager()

override func viewDidLoad() {
    super.viewDidLoad()


    centerViewOnUserLocation()

    manager.delegate = self
    manager.desiredAccuracy = kCLLocationAccuracyBest
    manager.requestWhenInUseAuthorization()
    manager.startUpdatingLocation()

    mapView.delegate = self


    //
    mapView.showsUserLocation = true

    mapView.mapType = MKMapType.standard


    let ref = Database.database().reference()


    ref.child("annotations").observe(.value) { snapshot in 
        print(snapshot)
        if let annotations = snapshot.value as? [String:[String:Any]] {
            self.createAnnotations(annotations)
        } else {
            print("Data received not formatted as expected")
        }
    }


}



//does not work for feedback (has no function)
@objc func showMaps() {
    performSegue(withIdentifier: "goToPersonalMap", sender: nil)
}
//does not work for feedback (has no function)
@objc func showFavoriteCourts() {
    performSegue(withIdentifier: "goToPersonalMap", sender: nil)
}

@objc func showAddCourt() {
    performSegue(withIdentifier: "toEmailViewController", sender: nil)
}

//does not work for feedback (has no function)
@objc func showFeedback() {
    performSegue(withIdentifier: "toFeedbackViewController", sender: nil)
}

func centerViewOnUserLocation() {
    if let location = manager.location?.coordinate {
        let region = MKCoordinateRegionMakeWithDistance(location, 10000, 10000)
        mapView.setRegion(region, animated: true)
    }
}


@IBAction func zoomButtonPressed(_ sender: UIButton) {
    centerViewOnUserLocation()
}