code: def geoms(self, scale=None, bounds=None, as_element=True):
          
          feature = self.data
          if scale is not None:
              feature = feature.with_scale(scale)
  
          if bounds:
              extent = (bounds[0], bounds[2], bounds[1], bounds[3])
          else:
              extent = None
          geoms = [g for g in feature.intersecting_geometries(extent) if g is not None]
          if not as_element:
              return geoms
          elif not geoms or 'Polygon' in geoms[0].geom_type:
              return Polygons(geoms, crs=feature.crs)
          elif 'Point' in geoms[0].geom_type:
              return Points(geoms, crs=feature.crs)
          else:
              return Path(geoms, crs=feature.crs)
docs: Returns the geometries held by the Feature.
  
          Parameters
          ----------
          scale: str
            Scale of the geometry to return expressed as string.
            Available scales depends on the Feature type.
  
            NaturalEarthFeature:
             '10m', '50m', '110m'
  
            GSHHSFeature:
             'auto', 'coarse', 'low', 'intermediate', 'high', 'full'
  
          bounds: tuple
            Tuple of a bounding region to query for geometries in
          as_element: boolean
            Whether to wrap the geometries in an element
  
          Returns
          -------
          geometries: Polygons/Path
            Polygons or Path object wrapping around returned geometries