     }
 
     /**
-     Main search handler that makes a `MKLocalSearchRequest` and updates
+     Main search handler that makes a `MKLocalSearch` based on `searchRequest` and updates
      `resultsViewController`.
 
      See [Apple docs](https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/EnablingSearch/EnablingSearch.html).
      */
-    @objc fileprivate func searchMapItems(query: String) {
-        let request = MKLocalSearchRequest()
-        request.naturalLanguageQuery = query
-        request.region = mapView.region
-
-        let search = MKLocalSearch(request: request)
+    @objc fileprivate func searchMapItems() {
+        let search = MKLocalSearch(request: searchRequest)
         search.start { (searchResponse, error) in
             guard let mapItems = searchResponse?.mapItems else {
                 print("MKLocalSearch error: \(error)")


    // MARK: Implementation

    fileprivate var queuedSearchQuery: String?
    fileprivate var removableAnnotations: [MKAnnotation] {
        return mapView.annotations.filter(isNonSelectedPlacemark)
    }

    /**
     Small helper necessitated by `CLLocationCoordinate2D` not being

    open fileprivate(set) var resultsViewController: SearchResultsViewController!

    open var pinColor: UIColor?
    open var searchDebounceDuration: TimeInterval = 0.6
    open var selectedMapItem: MKMapItem?
    open var zoomedInSpan: CLLocationDegrees = 0.01

