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; }