ArcGIS-导出为矢量数据收藏
/// <summary>
/// 导出featureclass
/// </summary>
/// <param name="pOutWorkspaceName">工作空间</param>
/// <param name="pFeatureClass">要素类</param>
/// <param name="strDatasetName">图层名</param>
private void ExportToVector(IWorkspaceName pOutWorkspaceName, IFeatureClass pFeatureClass, string strDatasetName)
{
// 确定目标要素集的名称
IFeatureClassName pOutFCName = new FeatureClassNameClass();
IDatasetName pOutDSName = pOutFCName as IDatasetName;
pOutDSName.WorkspaceName = pOutWorkspaceName;
pOutDSName.Name = strDatasetName;
// 定义源数据集,源要素集的名称
IDataset pSourceDataset = pFeatureClass as IDataset;
IFeatureClassName pSourceFCName = pSourceDataset.FullName as IFeatureClassName;
// 将源字段copy至目标字段
IFields pInFields = pFeatureClass.Fields;
IFields pOutFields;
IEnumFieldError pEnumField;
IFieldChecker pFieldChecker = new FieldCheckerClass();
pFieldChecker.Validate(pInFields, out pEnumField, out pOutFields);
// 源要素几何定义对象及格网
for (int i = 0; i < pOutFields.FieldCount; i++)
{
IField pGeoField = pOutFields.get_Field(i);
if (pGeoField.Type == esriFieldType.esriFieldTypeGeometry)
{
IGeometryDef pOutFCGeoDef = pGeoField.GeometryDef;
IGeometryDefEdit pOutFCGeoDefEdit = pOutFCGeoDef as IGeometryDefEdit;
pOutFCGeoDefEdit.GridCount_2 = 1;
pOutFCGeoDefEdit.set_GridSize(0, 0);
pOutFCGeoDefEdit.SpatialReference_2 = pOutFCGeoDef.SpatialReference;
try
{
// 创建要素数据转换对象并实现要素的输出
IFeatureDataConverter pFeatureDataConvert = new FeatureDataConverterClass();
pFeatureDataConvert.ConvertFeatureClass(pSourceFCName, null, null, pOutFCName, pOutFCGeoDef, pOutFields, "", 1000, 0);
}
catch { }
break;
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/myh0305/archive/2008/01/03/2014378.aspx