docs: def _request(self, lat_min, lon_min, lat_max, lon_max, start, end, picture_size=None, set_=None, map_filter=None):
          """
          Internal method to send requests to the Panoramio data API.
  
          :param lat_min:
              Minimum latitude of the bounding box
          :type lat_min: float
          :param lon_min:
              Minimum longitude of the bounding box
          :type lon_min: float
          :param lat_max:
              Maximum latitude of the bounding box
          :type lat_max: float
          :param lon_max:
              Maximum longitude of the bounding box
          :type lon_max: float
          :param start:
              Start number of the number of photo's to retrieve, where 0 is the most popular picture
          :type start: int
          :param end:
              Last number of the number of photo's to retrieve, where 0 is the most popular picture
          :type end: int
          :param picture_size:
              This can be: original, medium (*default*), small, thumbnail, square, mini_square
          :type picture_size: basestring
          :param set_:
              This can be: public, popular or user-id; where user-id is the specific id of a user (as integer)
          :type set_: basestring/int
          :param map_filter:
              Whether to return photos that look better together; when True, tries to avoid returning photos of the same
              location
          :type map_filter: bool
          :return: JSON response of the request formatted as a dictionary.
          """
          if not isinstance(lat_min, float):
              raise PynoramioException(
                  '{0}._request requires the lat_min parameter to be a float.'.format(self.__class__.__name__))
          if not isinstance(lon_min, float):
              raise PynoramioException(
                  '{0}._request requires the lon_min parameter to be a float.'.format(self.__class__.__name__))
          if not isinstance(lat_max, float):
              raise PynoramioException(
                  '{0}._request requires the lat_max parameter to be a float.'.format(self.__class__.__name__))
          if not isinstance(lon_max, float):
              raise PynoramioException(
                  '{0}._request requires the lon_max parameter to be a float.'.format(self.__class__.__name__))
  
          if not isinstance(start, int):
              raise PynoramioException(
                  '{0}._request requires the start parameter to be an int.'.format(self.__class__.__name__))
          if not isinstance(end, int):
              raise PynoramioException(
                  '{0}._request requires the end parameter to be an int.'.format(self.__class__.__name__))
  
          url = self.base_url + '&minx={0}&miny={1}&maxx={2}&maxy={3}&from={4}&to={5}'.format(lon_min, lat_min,
                                                                                              lon_max, lat_max,
                                                                                              start, end)
  
          if picture_size is not None and isinstance(picture_size, basestring) \
                  and picture_size in ['original', 'medium', 'small', 'thumbnail', 'square', 'mini_square']:
              url += '&size={0}'.format(picture_size)
  
          if set_ is not None and (isinstance(set_, basestring) and set_ in ['public', 'full']) \
                  or (isinstance(set_, int)):
              url += '&set={0}'.format(set_)
          else:
              url += '&set=public'
  
          if map_filter is not None and isinstance(map_filter, bool) and not map_filter:
              url += '&map_filter=false'
  
          r = requests.get(url)
          try:
              return r.json()
          except ValueError:
              # add your debugging lines here, for example, print(r.url)
              raise PynoramioException(
                  'An invalid or malformed url was passed to {0}._request'.format(self.__class__.__name__))