docs: public PhotoList<Photo> getWithGeoData(Date minUploadDate, Date maxUploadDate, Date minTakenDate, Date maxTakenDate, int privacyFilter, String sort,
              Set<String> extras, int perPage, int page) throws FlickrException {
          Map<String, Object> parameters = new HashMap<String, Object>();
          parameters.put("method", METHOD_GET_WITH_GEO_DATA);
  
          if (minUploadDate != null) {
              parameters.put("min_upload_date", Long.toString(minUploadDate.getTime() / 1000L));
          }
          if (maxUploadDate != null) {
              parameters.put("max_upload_date", Long.toString(maxUploadDate.getTime() / 1000L));
          }
          if (minTakenDate != null) {
              parameters.put("min_taken_date", Long.toString(minTakenDate.getTime() / 1000L));
          }
          if (maxTakenDate != null) {
              parameters.put("max_taken_date", Long.toString(maxTakenDate.getTime() / 1000L));
          }
          if (privacyFilter > 0) {
              parameters.put("privacy_filter", Integer.toString(privacyFilter));
          }
          if (sort != null) {
              parameters.put("sort", sort);
          }
          if (extras != null && !extras.isEmpty()) {
              parameters.put("extras", StringUtilities.join(extras, ","));
          }
          if (perPage > 0) {
              parameters.put("per_page", Integer.toString(perPage));
          }
          if (page > 0) {
              parameters.put("page", Integer.toString(page));
          }
  
          Response response = transport.get(transport.getPath(), parameters, apiKey, sharedSecret);
          if (response.isError()) {
              throw new FlickrException(response.getErrorCode(), response.getErrorMessage());
          }
          Element photosElement = response.getPayload();
          PhotoList<Photo> photos = PhotoUtils.createPhotoList(photosElement);
          return photos;
      }