Esempio n. 1
0
 /**
  * Get all tags around some location within some $radius.
  *
  * @param $lat
  * @param $lon
  * @param $radius
  * @return array
  */
 public function getTagsAroundLocation($lat, $lon, $radius)
 {
     $locationModel = new LocationModel($this->db);
     $locations = $locationModel->getLocations($lat, $lon, $radius);
     $locationsIds = array();
     foreach ($locations as $location) {
         $locationsIds[] = $location->getId();
     }
     $tagIds = array();
     $query = $this->db->prepare("SELECT tag_id FROM images WHERE location_id IN(" . implode(',', $locationsIds) . ")");
     $query->setFetchMode(PDO::FETCH_ASSOC);
     $query->execute();
     while ($row = $query->fetch()) {
         $tagId = $row['tag_id'];
         if (!in_array($tagId, $tagIds)) {
             $tagIds[] = $tagId;
         }
     }
     $tags = array();
     $tagModel = new TagModel($this->db);
     foreach ($tagIds as $id) {
         $tag = $tagModel->getTagById($id);
         if ($tag != null) {
             $tags[] = $tag;
         }
     }
     return $tags;
 }