ArcEngine创建ShapeFile文件

public static void CreateShapeFile(string strShapeFolder, string strShapeName, string wkt)
{

//打开工作空间
const string strShapeFieldName = "shape";

IWorkspaceFactory pWSF = new ShapefileWorkspaceFactoryClass();
IFeatureWorkspace pWS = (IFeatureWorkspace)pWSF.OpenFromFile(strShapeFolder, 0);

//设置字段集
IFields pFields = new FieldsClass();
IFieldsEdit pFieldsEdit = (IFieldsEdit)pFields;

//设置字段
IField pField = new FieldClass();
IFieldEdit pFieldEdit = (IFieldEdit)pField;


//创建类型为几何类型的字段
pFieldEdit.Name_2 = strShapeFieldName;
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;

//为esriFieldTypeGeometry类型的字段创建几何定义,包括类型和空间参照
IGeometryDef pGeoDef = new GeometryDefClass(); //The geometry definition for the field if IsGeometry is TRUE.
IGeometryDefEdit pGeoDefEdit = (IGeometryDefEdit)pGeoDef;
pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPolygon;
pGeoDefEdit.SpatialReference_2 = new UnknownCoordinateSystemClass();

//ISpatialReferenceFactory2 pSpaRefFactory = new SpatialReferenceEnvironmentClass();
//pSpaRefFactory.CreateESRISpatialReferenceFromPRJFile(@"E:\temp\Suzhou_1954_3_Degree_GK_CM_120E.prj");

pFieldEdit.GeometryDef_2 = pGeoDef;
pFieldsEdit.AddField(pField);

//添加其他的字段
pField = new FieldClass();
pFieldEdit = (IFieldEdit)pField;
pFieldEdit.Name_2 = "wkt";
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField(pField);

IField pField2 = new FieldClass();
IFieldEdit pFieldEdit2 = (IFieldEdit)pField2;
pFieldEdit2.Type_2 = esriFieldType.esriFieldTypeOID;
pFieldsEdit.AddField(pField2);

IField pField3 = new FieldClass();
IFieldEdit pFieldEdit3 = (IFieldEdit)pField3;
pFieldEdit3.Name_2 = "str1";
pFieldEdit3.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField(pField3);

IField pField4 = new FieldClass();
IFieldEdit pFieldEdit4 = (IFieldEdit)pField4;
pFieldEdit4.Name_2 = "str2";
pFieldEdit4.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField(pField4);

//创建shapefile
pWS.CreateFeatureClass(strShapeName, pFields, null, null, esriFeatureType.esriFTSimple, strShapeFieldName, "");

//IFeatureClass pointFC = Common.CreateFeatureClass(pointfeatureClassName, pointtype, sr, pFWS, fieldList);
}

转载于:https://www.cnblogs.com/khfang/p/7685302.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值