code: def round_polygon_coords(p, precision):
      
      
      # round the coordinates of the Polygon exterior
      new_exterior = [[round(x, precision) for x in c] for c in p.exterior.coords]
  
      # round the coordinates of the (possibly multiple, possibly none) Polygon interior(s)
      new_interiors = []
      for interior in p.interiors:
          new_interiors.append([[round(x, precision) for x in c] for c in interior.coords])
      
      # construct a new Polygon with the rounded coordinates
      # buffer by zero to clean self-touching or self-crossing polygons
      new_poly = Polygon(shell=new_exterior, holes=new_interiors).buffer(0)
      return new_poly
docs: Round the coordinates of a shapely Polygon to some decimal precision.
  
      Parameters
      ----------
      p : shapely Polygon
          the polygon to round the coordinates of
      precision : int
          decimal precision to round coordinates to
  
      Returns
      -------
      new_poly : shapely Polygon
          the polygon with rounded coordinates