code: def project_geometry(geometry, crs=None, to_crs=None, to_latlong=False):
      
  
      if crs is None:
          crs = settings.default_crs
  
      gdf = gpd.GeoDataFrame()
      gdf.crs = crs
      gdf.gdf_name = 'geometry to project'
      gdf['geometry'] = None
      gdf.loc[0, 'geometry'] = geometry
      gdf_proj = project_gdf(gdf, to_crs=to_crs, to_latlong=to_latlong)
      geometry_proj = gdf_proj['geometry'].iloc[0]
      return geometry_proj, gdf_proj.crs
docs: Project a shapely Polygon or MultiPolygon from lat-long to UTM, or
      vice-versa
  
      Parameters
      ----------
      geometry : shapely Polygon or MultiPolygon
          the geometry to project
      crs : dict
          the starting coordinate reference system of the passed-in geometry,
          default value (None) will set settings.default_crs as the CRS
      to_crs : dict
          if not None, just project to this CRS instead of to UTM
      to_latlong : bool
          if True, project from crs to lat-long, if False, project from crs to
          local UTM zone
  
      Returns
      -------
      tuple
          (geometry_proj, crs), the projected shapely geometry and the crs of the
          projected geometry