code: def get_nearest_forecast_site(self, latitude=None,  longitude=None):
          
          if longitude is None:
              print('ERROR: No latitude given.')
              return False
  
          if latitude is None:
              print('ERROR: No latitude given.')
              return False
  
          nearest = False
          distance = None
          sites = self.get_forecast_sites()
          # Sometimes there is a TypeError exception here: sites is None
          # So, sometimes self.get_all_sites() has returned None.
          for site in sites:
              new_distance = \
                  self._distance_between_coords(
                      float(site.longitude),
                      float(site.latitude),
                      float(longitude),
                      float(latitude))
  
              if ((distance == None) or (new_distance < distance)):
                  distance = new_distance
                  nearest = site
  
          # If the nearest site is more than 30km away, raise an error
  
          if distance > 30:
              raise APIException("There is no site within 30km.")
  
          return nearest
docs: This function returns the nearest Site object to the specified
          coordinates.