zoukankan      html  css  js  c++  java
  • Delphi版 MapControl加载DWG文件

    function LoadDwgFile(mapControl: TMapControl; dwgFilePath: string; dwgFileName: string): Boolean;
    var
       qCadWorkFactory: IWorkspaceFactory;
       qWorkSpace: IFeatureWorkspace;
       qFeatDataset: IFeatureDataset;
       qFeatClassContainer: IFeatureClassContainer; //要素类 容器
       qFeatClass: IFeatureClass;
       qfeatLayer: IFeatureLayer;
       I        : Integer;
    begin
       try
          //创建 CAD 工作工厂
          qCadWorkFactory := CoCadWorkspaceFactory.Create as IWorkspaceFactory;
          if qCadWorkFactory.IsWorkspace(dwgFilePath) then
          begin
             qWorkSpace := qCadWorkFactory.OpenFromFile(dwgFilePath, 0) as IFeatureWorkspace;
             qFeatDataset := qWorkSpace.OpenFeatureDataset(dwgFileName);

             qFeatClassContainer := qFeatDataset as IFeatureClassContainer;
             if (qFeatClassContainer = nil) or (qFeatClassContainer.ClassCount = 0) then
             begin
                Result := False;
                Exit;
             end;

             for I := 0 to qFeatClassContainer.ClassCount - 1 do
             begin
                qFeatClass := qFeatClassContainer.Class_[i];
                if qFeatClass.FeatureType = esriFTCoverageAnnotation then
                begin
                   qfeatLayer := CoCadAnnotationLayer.Create as IFeatureLayer;
                end
                else
                begin
                   qfeatLayer := CoFeatureLayer.Create as IFeatureLayer;
                end;

                qfeatLayer.Name := qFeatClass.AliasName;
                qfeatLayer.FeatureClass := qFeatClass;
                mapControl.AddLayer(qfeatLayer, mapControl.LayerCount);
                mapControl.ActiveView.Refresh;
             end;
          end
          else
          begin
             Result := False;
             Exit;
          end;
       except
          Result := False;
       end;
       Result := True;
    end;
  • 相关阅读:
    用Python作GIS:择菜篇
    【嵌入式开发技术之串口】Linux下串口主机程序
    1033,2052 是什么意思?
    Telnet协议详解
    生活情景英语:英语国家生存英语精选
    windows下搭建iphone开发环境
    开公司的流程
    解决某物流企业二维码打印问题
    数字黑洞
    InnoSetup 打包代码 检测.netFramework
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1405017.html
Copyright © 2011-2022 走看看