             return
         }
         performDefaultSearch(withRegion: region)
+    }
+    
+    func selectPlaceToSelectIfNecessary() {
+        guard let toSelect = placeToSelect else {
+            return
+        }
+        defer {
+            placeToSelect = nil
+        }
+        let annotations = mapView.annotations(in: mapView.visibleMapRect)
+        for annotation in annotations {
+            guard let place = annotation as? ArticlePlace, toSelect === place else {
+                continue
+            }
+            deselectAllAnnotations()
+            selectArticlePlace(place)
+            break
+        }
     }
     
     func performDefaultSearch(withRegion region: MKCoordinateRegion) {

            
            let checkAndSelect = { (place: ArticlePlace) in
                if let keyToSelect = self.articleKeyToSelect, place.articles.count == 1, place.articles.first?.key == keyToSelect {
                    self.deselectAllAnnotations()
                    self.placeToSelect = place
                    self.articleKeyToSelect = nil
                }
            }
            

        regroupArticlesIfNecessary(forVisibleRegion: mapView.region)
        articleKeyToSelect = nil
        showRedoSearchButtonIfNecessary(forVisibleRegion: mapView.region)
        selectPlaceToSelectIfNecessary()
    }

    var placeGroupVC: ArticlePlaceGroupViewController?
