docs: def filter(self, intersects):
          """Filter results that intersect a given GeoFeature or Vector.
  
          """
          try:
              crs = self.crs
              vector = intersects.geometry if isinstance(intersects, GeoFeature) else intersects
              prepared_shape = prep(vector.get_shape(crs))
              hits = []
  
              for feature in self:
                  target_shape = feature.geometry.get_shape(crs)
                  if prepared_shape.overlaps(target_shape) or prepared_shape.intersects(target_shape):
                      hits.append(feature)
  
          except IndexError:
              hits = []
  
          return FeatureCollection(hits)