         let lowestSearchPrecision = QuadKeyPrecision(deltaLongitude: searchDeltaLon)
         
         var groupingAggressiveness: CLLocationDistance = 0.67
-        let groupingPrecisionDelta: QuadKeyPrecision = 4
-        let maxPrecision: QuadKeyPrecision = 17
+        let groupingPrecisionDelta: QuadKeyPrecision = isViewModeOverlay ? 6 : 4
+        let maxPrecision: QuadKeyPrecision = isViewModeOverlay ? 19 : 17
         let minGroupCount = 3
-        if lowestPrecision + 4 <= lowestSearchPrecision {
+        if lowestPrecision + groupingPrecisionDelta <= lowestSearchPrecision {
             groupingAggressiveness += 0.3
         }
         

        }
        return false
    }
    
    func _selectVisibleKeyToSelectIfNecessary() {
        guard !isMovingToRegion, let keyToSelect = articleKeyToSelect else {
            return
        }
        guard selectVisibleArticle(articleKey: keyToSelect) else {
            return
        }
        articleKeyToSelect = nil
    }
    
    func selectVisibleKeyToSelectIfNecessary() {
        let selector = #selector(_selectVisibleKeyToSelectIfNecessary)
        NSObject.cancelPreviousPerformRequests(withTarget: self, selector: selector, object: nil)
        self.perform(selector, with: nil, afterDelay: 0.3)
    }
    
    func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {

                    
                    let placeView = mapView.view(for: previousPlace)
                    taskGroup.enter()
                    self.countOfAnimatingAnnotations += 1
                    UIView.animate(withDuration:animationDuration, delay: 0, options: [.allowUserInteraction], animations: {
                        placeView?.alpha = 0
                        if (previousPlace.articles.count > 1) {
