public static Geometry Union(Geometry g, params Geometry[] geometries) { SqlGeometry sg = SqlGeometryConverter.ToSqlGeometry(g); foreach (SqlGeometry sgUnion in SqlGeometryConverter.ToSqlGeometries(geometries)) { sg = sg.STUnion(sgUnion); } return(SqlGeometryConverter.ToSharpMapGeometry(sg)); }
/// <summary> /// Computes the union of <paramref name="g"/> and <paramref name="geometries"/> using SqlServer spatial object algorithms /// </summary> /// <param name="g">A geometry/geography</param> /// <param name="geometries">A (series of) geometry/geography objects</param> /// <param name="spatialMode">Flag indicating if <paramref name="g"/> and <paramref name="geometries"/> are geometry or geography objects</param> /// <returns>The union</returns> public static Geometry Union(Geometry g, SqlServerSpatialObjectType spatialMode, params Geometry[] geometries) { if (spatialMode == SqlServerSpatialObjectType.Geometry) { SqlGeometry sg = SqlGeometryConverter.ToSqlGeometry(g); foreach (SqlGeometry sgUnion in SqlGeometryConverter.ToSqlGeometries(geometries)) { sg = sg.STUnion(sgUnion); } return(SqlGeometryConverter.ToSharpMapGeometry(sg)); } else { SqlGeography sg = SqlGeographyConverter.ToSqlGeography(g); foreach (SqlGeography sgUnion in SqlGeographyConverter.ToSqlGeographies(geometries)) { sg = sg.STUnion(sgUnion); } return(SqlGeographyConverter.ToSharpMapGeometry(sg)); } }