在实例代码中,首先要得到一个几何对象,再将这几个几何对象保存到要素类的Shape字段中,如果要素类存在其他类型的字段,则依据这个字段的类型设置一些默认的数值或字符串。
private void AddFeatureToFeatureClass(IFeatureClass pFeatClass, IGeometry pGeom)
{
//打开要素游标和要素缓冲,pFeatClass的一个要素类
IFeatureCursor pFeatCur = pFeatClass.Insert(true);
IFeatureBuffer pFeatBuf = pFeatClass.CreateFeatureBuffer();
//pGeom对象时需要传入的几何形体对象
IPolygon pPolygon = pGeom as IPolygon;
IFields pFlds = pFeatClass.Fields;
for (int i = 1; i <= pFlds.FieldCount; i++)
{
IField pFld = pFlds.get_Field(i);
//如果为几何字段,将pGeom传入
if (pFld.Type = esriFieldType.esriFieldTypeGeometry)
{
pFeatBuf.set_Value(i, pGeom);
}
else
{
//传入各种试验值
if (pFld.Type == esriFieldType.esriFieldTypeInteger)
pFeatBuf.set_Value(i, 0);
if (pFld.Type == esriFieldType.esriFieldTypeDouble)
pFeatBuf.set_Value(i, 0.0);
if (pFld.Type == esriFieldType.esriFieldTypeSmallInteger)
pFeatBuf.set_Value(i, 0);
if (pFld.Type == esriFieldType.esriFieldTypeString)
pFeatBuf.set_Value(i, "noname");
}
}
//将要素缓冲对象通过插入游标保存进要素类中
pFeatCur.InsertFeature(pFeatBuf);
}