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;
  • 相关阅读:
    Ubuntu包管理命令 dpkg、apt和aptitude
    Linux curses库使用
    VC皮肤库SkinSharp 1.0.6.6的使用
    HOG(方向梯度直方图)
    2014年国外发布的中国内地大学排名18强名单
    sql语句中BEGIN TRAN...COMMIT TRAN
    搜索框中“请输入搜索keyword”
    IOS基于新浪微博开放平台微博APP
    php字符串标点等字符截取不乱吗 封装方法
    谈一谈struts2和springmvc的拦截器
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1405017.html
Copyright © 2011-2022 走看看