/**
  * @param Address $address
  *
  * @return mixed
  * @throws UnresolvedGeonameException
  */
 public function getNearestCity(Address $address)
 {
     $queryBuilder = $this->getEntityManager()->createQueryBuilder()->select('g')->addSelect('DISTANCE(g.lat,g.lng,:lat,:lng) AS HIDDEN distance')->from(Geoname::SHORTCUT_CLASS_NAME, 'g')->leftJoin('g.translations', 't')->setParameter('lat', $address->getLat())->setParameter('lng', $address->getLng())->orderBy('distance', 'ASC');
     $query = $queryBuilder->getQuery()->setMaxResults(1);
     $results = $query->getResult();
     if (is_array($results) && count($results) > 0) {
         return $results[0];
     }
     throw new UnresolvedGeonameException();
 }