public static function of(LineString $exteriorRing, LineString ...$interiorRings) : Polygon
    {
        return new static($exteriorRing->coordinateSystem(), $exteriorRing, ...$interiorRings);
    }
public static function of(LineString $exteriorRing, LineString ...$interiorRings) : Polygon
    {
        return new static($exteriorRing->coordinateSystem(), $exteriorRing, ...$interiorRings);
    }
public static function of ( LineString $ exteriorRing , LineString ... $ interiorRings ) : Polygon { return new static ( $ exteriorRing -> coordinateSystem ( ) , $ exteriorRing , ... $ interiorRings ) ; }
Creates a non-empty Polygon composed of the given rings.

@param LineString    $exteriorRing  The exterior ring.
@param LineString ...$interiorRings The interior rings, if any.

@return Polygon

@throws InvalidGeometryException  If the resulting geometry is not valid for a sub-type of Polygon.
@throws CoordinateSystemException If the rings use different coordinate systems.
Creates a non - empty Polygon composed of the given rings .