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;
  • 相关阅读:
    阿里云-Redis-Help-最佳实战:将MySQL数据迁移到Redis
    阿里云-Redis-实战场景:互联网类应用
    阿里云-Redis-实战场景:电商行业类应用
    术语-计算机-性能:RT
    术语-计算机-性能:并发数
    术语-计算机-性能:TPS
    术语-计算机-性能:QPS
    阿里云-Redis-实战场景:游戏服务类应用
    阿里云-Redis-实战场景:视频直播类应用
    文章-依赖注入:《Inversion of Control Containers and the Dependency Injection pattern》
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1488241.html
Copyright © 2011-2022 走看看