zoukankan      html  css  js  c++  java
  • Delphi ArcEngine 将要素类转换输出为 Shape 文件

    在这里感谢 “端木飘零”

    procedure ConvertFeatureClassToShapesFile(pFeatureClass: IFeatureClass; pFilePath, pFileName: string);
    var
      pInDataSet, pOutDataSet: IDataSet;
      pInWorkSpace: IWorkSpace;
      pInFeatureClassName, pOutFeatureClassName: IFeatureClassName;
      pOutWorkspaceFactory: IWorkspaceFactory;
      pOutWorkerspace: IFeatureWorkspace;
      pOutWorkspaceName: IWorkspaceName;
      pOutDataSetName: IDatasetName;
      pFieldChecker: IFieldChecker;
      pEnumFieldError: IEnumFieldError;
      pOutFields: IFields;
      pFeatureDataConvert: IFeatureDataConverter;
      pQueryFilter: IQueryFilter;
      pSpatialFilter: ISpatialFilter;

      pFeature: IFeature;
    begin
      if pFeatureClass = nil then
      begin
        exit;
      end;
      //得到输入
      pInDataSet := pFeatureClass as IDataSet;
      pInWorkSpace := pInDataSet.Workspace;
      pInFeatureClassName := pInDataSet.FullName as IFeatureClassName;

      //定义输出
      pOutWorkspaceFactory := CoShapefileWorkspaceFactory.create as IWorkspaceFactory;
      pOutWorkerspace := pOutWorkspaceFactory.OpenFromFile(pFilePath, 0) as IFeatureWorkspace;
      pOutDataSet := pOutWorkerspace as IDataset;
      pOutWorkspaceName := pOutDataSet.FullName as IWorkspaceName;
      pOutFeatureClassName := coFeatureClassName.Create as IFeatureClassName;

      pOutDataSetName := pOutFeatureClassName as IDatasetName;
      pOutDataSetName.Name := pFileName;
      pOutDataSetName.WorkspaceName := pOutWorkspaceName;

      //检查字段
      pFieldChecker := coFieldChecker.Create as IFieldChecker;
      pFieldChecker.InputWorkspace := pInWorkSpace;
      pFieldChecker.ValidateWorkspace := pOutWorkerspace as IWorkspace;
      pFieldChecker.Validate(pFeatureClass.Fields, pEnumFieldError, pOutFields);

      //要素筛选
      pQueryFilter := coQueryFilter.Create as IQueryFilter;
      pQueryFilter.WhereClause := '';

      //转换输出
      pFeatureDataConvert := coFeatureDataConverter.Create as IFeatureDataConverter;
      pFeatureDataConvert.ConvertFeatureClass(pInFeatureClassName, pQueryFilter, nil, pOutFeatureClassName, nil,   pOutFields, '', 100, 0);
    end;
  • 相关阅读:
    html+css 笔记
    JS随手笔记
    JQ几个淡入淡效果
    AngularJS编译阶段应分为两个阶段
    JavaScript 原型链的理解
    js继承的6种方式
    什么是跨域?跨域解决方法
    computed (计算属性) 和 methods (方法) 的区别
    谈谈vue生命周期
    基本类型有哪几种?null 是对象吗?基本数据类型和复杂数据类型存储有什么区别?
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1488241.html
Copyright © 2011-2022 走看看