     fileprivate var preparedSearchQuery: String {
         return searchController.searchBar.text?.trimmingCharacters(in: .whitespaces) ?? ""
     }
+    fileprivate var previousVisibleRect: MKMapRect?
     fileprivate var removableAnnotations: [MKAnnotation] {
         return mapView.annotations.filter(isNonSelectedPlacemark)
     }

        present(alertController, animated: true, completion: nil)
        revealMapView()
        // TODO: Test usability of search results in this state.
    }

    /**

            updateSearchRequest()
        }
    }
    fileprivate var searchRegion: MKCoordinateRegion? {
        didSet {
            updateSearchRequest()
        }
    }
    fileprivate var searchRequest = MKLocalSearchRequest()
    fileprivate var shouldDebounceNextSearch = true
    fileprivate var wasMapPanned: Bool {
        let size = mapView.visibleMapRect.size
        defer {
            previousVisibleRect = mapView.visibleMapRect
        }
        if let previousSize = previousVisibleRect?.size, abs(size.width - previousSize.width) < 1 {
            return true
        }
        return false
    }

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