Provides access to members that create geometries from different inputs.
Members
| Name | Description | |
|---|---|---|
|  | CreateEmptyGeometryByESRIType | Create an empty geometry of the specified Esri shape file type. | 
|  | CreateEmptyGeometryByType | Creates an empty geometry of the specified ArcObjects geometry type. | 
|  | CreateGeometry | Create a point, polyline, polygon, or multipoint from the specified shapefile format buffer. | 
|  | CreateGeometryFromEnumerator | Creates a geometry bag containing references to geometries returned by the input geometry enumerator. | 
|  | CreateGeometryFromWkb | Create a point, polyline, polygon, or multipoint from the specified OGIS WKB format buffer. | 
|  | CreateGeometryFromWkbVariant | Create a point, polyline, polygon, or multipoint from the specified OGIS WKB format buffer. | 
IGeometryFactory.CreateEmptyGeometryByESRIType Method
Create an empty geometry of the specified Esri shape file type.
Public Sub CreateEmptyGeometryByESRIType ( _
    ByVal shapeType As esriShapeType, _
    ByRef outGeometry As IGeometry _
)
public void CreateEmptyGeometryByESRIType (
    esriShapeType shapeType,
    ref IGeometry outGeometry
);
IGeometryFactory.CreateEmptyGeometryByType Method
Creates an empty geometry of the specified ArcObjects geometry type.
Public Sub CreateEmptyGeometryByType ( _
    ByVal GeometryType As esriGeometryType, _
    ByRef outGeometry As IGeometry _
)
public void CreateEmptyGeometryByType (
    esriGeometryType GeometryType,
    ref IGeometry outGeometry
);
IGeometryFactory.CreateGeometry Method
Create a point, polyline, polygon, or multipoint from the specified shapefile format buffer.
Public Sub CreateGeometry ( _
    ByRef byteCountInOut As Integer, _
    ByRef geometryInfo As Byte&, _
    ByRef outGeometry As IGeometry _
)
public void CreateGeometry (
    ref int byteCountInOut,
    ref Byte& geometryInfo,
    ref IGeometry outGeometry
);
IGeometryFactory.CreateGeometryFromEnumerator Method
Creates a geometry bag containing references to geometries returned by the input geometry enumerator.
Public Function CreateGeometryFromEnumerator ( _
    ByVal geometries As IEnumGeometry _
) As IGeometry
public IGeometry CreateGeometryFromEnumerator (
    IEnumGeometry geometries
);
IGeometryFactory.CreateGeometryFromWkb Method
Create a point, polyline, polygon, or multipoint from the specified OGIS WKB format buffer.
Public Sub CreateGeometryFromWkb ( _
    ByRef byteCountInOut As Integer, _
    ByRef geometryInfo As Byte&, _
    ByRef outGeometry As IGeometry _
)
public void CreateGeometryFromWkb (
    ref int byteCountInOut,
    ref Byte& geometryInfo,
    ref IGeometry outGeometry
);
IGeometryFactory.CreateGeometryFromWkbVariant Method
Create a point, polyline, polygon, or multipoint from the specified OGIS WKB format buffer.
Public Sub CreateGeometryFromWkbVariant ( _
    ByVal wkb As Object, _
    ByRef outGeometry As IGeometry, _
    ByRef numBytesRead As Integer _
)
public void CreateGeometryFromWkbVariant (
    object wkb,
    ref IGeometry outGeometry,
    ref int numBytesRead
);
private void CreateGeometryFromWkbVariant()
{
  OleDbConnection connection = new OleDbConnection("Provider=ESRI.GeoDB.OLEDB.1;Data Source=   C:\\basiceditdatabase.mdb;ExtendedProperties=workspacetype=esriDataSourcesGDB.AccessWorkspaceFactory.1;Geometry=WKB");
  //create the command object with the sql query
  OleDbCommand command = new OleDbCommand("select * from line_edit", connection);
  try
  {
    connection.Open();
    //create the datareader object to connect to table
    OleDbDataReader reader = command.ExecuteReader();
    //Iterate through the geodatabase and add new Geometries to to GeometryBag
    IGeometryFactory2 factory = new GeometryEnvironmentClass();
    IGeometryCollection geometryCollection = new GeometryBagClass();
    IGeometry outGeometry;
    int bytesRead;
    object missing = Type.Missing;
    while (reader.Read())
    {
     int shapeColumn = reader.GetOrdinal("SHAPE");
     object byteArrayObject = reader.GetValue(shapeColumn);
     //Re-create the geometry from the WKB data
     factory.CreateGeometryFromWkbVariant(byteArrayObject, out outGeometry, out bytesRead);
     if(outGeometry!= null)
     {
       //add the geometry to the geometryColection's end
       geometryCollection.AddGeometry(outGeometry, ref missing, ref missing);
     }
    }
    //don't forget to clean up
    reader.Close();
    connection.Close();
    System.Windows.Forms.MessageBox.Show(geometryCollection.GeometryCount + " geomtries added");
  }
  //Some usual exception handling
  catch (OleDbException e)
  {
    System.Windows.Forms.MessageBox.Show("Error: {0}", e.Errors[0].Message);
  }
}
Dim pGFact As ESRI.ArcGIS.Geometry.IGeometryFactory
        Dim pGeoEnv As ESRI.ArcGIS.Geometry.GeometryEnvironment
        Dim pGeomCol As ESRI.ArcGIS.Geometry.IGeometryCollection
        Dim pGeom As ESRI.ArcGIS.Geometry.IGeometry
        Dim cBytesread As Long
        Dim pEnvelope As ESRI.ArcGIS.Geometry.IEnvelope
        Dim adors As ADODB.Recordset
        Dim adocon As ADODB.Connection
        Dim sConstring As String, sSQLstring As String
        Dim WKBData As Object
        pGeoEnv = New ESRI.ArcGIS.Geometry.GeometryEnvironment
        pEnvelope = New ESRI.ArcGIS.Geometry.Envelope
        pGFact = pGeoEnv
        adors = New ADODB.Recordset
        adocon = New ADODB.Connection
        sConstring = "Provider=ESRI.GeoDB.OLEDB.1;" & "Data Source=   d:\temp\us_states.mdb;" & "ExtendedProperties=workspacetype=esriDataSourcesGDB.AccessWorkspaceFactory.1;Geometry=WKB"
        sSQLstring = "select * from us_states"
        adocon.Open(sConstring)
        adors.Open(sSQLstring, adocon, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockOptimistic)
        Do Until adors.EOF
            pGeomCol = New ESRI.ArcGIS.Geometry.GeometryBag
            WKBData = adors("Shape").Value
            If IsNothing(WKBData) Then
                adors.MoveNext()
            Else
                '++ Re-create the geometry from the WKB data
                pGFact.CreateGeometryFromWkbVariant(WKBData, pGeom, cBytesread)
                '++ Aggregate the geom envelopes
                pEnvelope.Union(pGeom.Envelope)
                pGeomCol.AddGeometry(pGeom)
                adors.MoveNext()
            End If
        Loop
Classes that implement IGeometryFactory
| Classes | Description | 
|---|---|
| GeometryEnvironment | Provides a way of creating geometries from different inputs and setting/getting global variables for controlling behavior of geometry methods. |