public function searchByProximity($center, $tolerance, $maxItems = 0)
 {
     $this->retriever->setSaveMemory(true);
     $categories = $this->leafCategories();
     if (!$categories) {
         return parent::searchByProximity($center, $tolerance, $maxItems);
     } else {
         $results = array();
         foreach ($categories as $category) {
             $this->retriever->setSelectedLayer($category->getId());
             $results = array_merge($results, parent::searchByProximity($center, $tolerance, $maxItems));
         }
     }
     $this->retriever->setSaveMemory(false);
     return $results;
 }