     ///The initial value is respected
     var showMapView: Bool = true
     
+    var centerMapOnUserLocation: Bool = true
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         

                selector: #selector(ViewController.updateUserLocation),
                userInfo: nil,
                repeats: true)
            
            //Give it a chance to get the user's location, then update the mapview region
            DispatchQueue.main.asyncAfter(timeInterval: 3) {
                let span = MKCoordinateSpan(latitudeDelta: 0.005, longitudeDelta: 0.005)
                let region = MKCoordinateRegion(center: self.mapView.userLocation.coordinate, span: span)
                self.mapView.region = region
            }
        }
    }
    

            deadline: DispatchTime.now() + Double(Int64(timeInterval * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: execute)
    }
}

extension UIView {
    func recursiveSubviews() -> [UIView] {
        var recursiveSubviews = self.subviews
        
        for subview in subviews {
            recursiveSubviews.append(contentsOf: subview.recursiveSubviews())
        }
        
        return recursiveSubviews
    }
}
