文件图层创建(可用于创建临时图层)

public void CreateNewLayer(AxMapControl ax, string layerName, esriGeometryType layerType)

{

   // 空间参考系 得到当前地图的空间参考系

  ISpatialReference spatialReference = ax.ActiveView.FocusMap.SpatialReference;

  // 设定保持的路径

  string strShapeFolder = @"F:\fuzhou\";

  // 设定图层文件名

  string strShapeFile = layerName + ".shp";

  string shapeFileFullName = strShapeFolder + strShapeFile;

  // 定义工作空间

  IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactory();

  // 矢量工组空间

     IFeatureWorkspace featureWorkspace =(IFeatureWorkspace) workspaceFactory.OpenFromFile(strShapeFolder, 0);

  IFeatureClass featureClass;

  // 如何已存在当前文件

  if (File.Exists(shapeFileFullName))

  {

    featureClass = featureWorkspace.OpenFeatureClass(strShapeFile);

    // 数据集对象的删除

    IDataset dataset = (IDataset)featureClass;

    dataset.Delete();

  }

  // 定义矢量数据的属性字段

  IFields fields = new FieldsClass();

  IFieldsEdit fieldsEdit = (IFieldsEdit)fields;

  IField field = new FieldClass();

  IFieldEdit fieldEdit = (IFieldEdit)field;

  fieldEdit.Name_2 = "SHAPE";

  fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;

  IGeometryDefEdit geoDef = new GeometryDefClass();

  IGeometryDefEdit geoDefEdit = (IGeometryDefEdit)geoDef;

  geoDefEdit.GeometryType_2 = layerType;//设置图层类型

  geoDefEdit.SpatialReference_2 = spatialReference;

  fieldEdit.GeometryDef_2 = geoDef;

  fieldsEdit.AddField(field);

 

  field = new FieldClass();

  fieldEdit = (IFieldEdit)field;

  fieldEdit.Name_2 = "data";

  fieldEdit.Type_2 = esriFieldType.esriFieldTypeString;

  fieldsEdit.AddField(field);

      // 创建对象

  featureClass = featureWorkspace.CreateFeatureClass(strShapeFile, fields, null, null, esriFeatureType.esriFTSimple, "SHAPE", "");

  ax.AddShapeFile(strShapeFolder, strShapeFile);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值