예제 #1
0
        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));
        }
예제 #2
0
 /// <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));
     }
 }