AE 加载Shapefile、栅格、CAD、PersonGDB、SDE数据.doc_第1页
AE 加载Shapefile、栅格、CAD、PersonGDB、SDE数据.doc_第2页
AE 加载Shapefile、栅格、CAD、PersonGDB、SDE数据.doc_第3页
AE 加载Shapefile、栅格、CAD、PersonGDB、SDE数据.doc_第4页
AE 加载Shapefile、栅格、CAD、PersonGDB、SDE数据.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AE 加载Shapefile、栅格、CAD、PersonGDB、SDE数据ArcEngine加载图层的五个步骤1.创建一个类工厂2.使用类工厂创建一个要使用的工作区3.使用工作区打开并得到图层的dataset4.把dataset装入到新建的图层实例5.把图层加载到MapControl控件1. 加载Shapefile数据IWorkspaceFactorypWorkspaceFactory;IFeatureWorkspacepFeatureWorkspace;IFeatureLayerpFeatureLayer;/获取当前路径和文件名OpenFileDialogdlg=newOpenFileDialog();dlg.Filter=Shape(*.shp)|*.shp|AllFiles(*.*)|*.*;dlg.Title=OpenShapefiledata;dlg.ShowDialog();stringstrFullPath=dlg.FileName;if(strFullPath=)return;intIndex=strFullPath.LastIndexOf(/);stringfilePath=strFullPath.Substring(0,Index);stringfileName=strFullPath.Substring(Index+1);/打开工作空间并添加shp文件pWorkspaceFactory=newShapefileWorkspaceFactoryClass(); pFeatureWorkspace=(IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath,0);pFeatureLayer=newFeatureLayerClass();pFeatureLayer.FeatureClass=pFeatureWorkspace.OpenFeatureClass(fileName);pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName;axMapControl1.Map.AddLayer(pFeatureLayer);axMapControl1.ActiveView.Refresh();2.加载栅格数据IWorkspaceFactorypWorkspaceFactory;IRasterWorkspacepRasterWorkspace;OpenFileDialogdlg=newOpenFileDialog();dlg.Filter=LayerFile(*.lyr)|*.jpg;*.bmp;*.tiff;dlg.Title=OpenRasterDataFile;dlg.ShowDialog();/获取当前路径和文件名stringstrFullPath=dlg.FileName;if(strFullPath=)return;intIndex=strFullPath.LastIndexOf(/);stringfileName=strFullPath.Substring(Index+1);stringfilePath=strFullPath.Substring(0,Index);pWorkspaceFactory=newRasterWorkspaceFactoryClass();pRasterWorkspace=(IRasterWorkspace)pWorkspaceFactory.OpenFromFile(filePath,0);IRasterDatasetpRasterDataset=(IRasterDataset)pRasterWorkspace.OpenRasterDataset(fileName);IRasterLayerpRasterLayer=newRasterLayerClass();pRasterLayer.CreateFromDataset(pRasterDataset);axMapControl1.Map.AddLayer(pRasterLayer);axMapControl1.ActiveView.Refresh();3.加载CAD数据1IWorkspaceFactorypWorkspaceFactory;2IFeatureWorkspacepFeatureWorkspace;3IFeatureLayerpFeatureLayer;4IFeatureDatasetpFeatureDataset;5/获取当前路径和文件名6OpenFileDialogdlg=newOpenFileDialog();7dlg.Filter=CAD(*.dwg)|*.dwg|AllFiles(*.*)|*.*;8dlg.Title=OpenCADDatafile;9dlg.ShowDialog();10stringstrFullPath=dlg.FileName;11if(strFullPath=)return;12intIndex=strFullPath.LastIndexOf(/);13stringfilePath=strFullPath.Substring(0,Index);14stringfileName=strFullPath.Substring(Index+1);15/打开CAD数据集16pWorkspaceFactory=newCadWorkspaceFactoryClass();17pFeatureWorkspace=(IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath,0);18/打开一个要素集19pFeatureDataset=pFeatureWorkspace.OpenFeatureDataset(fileName);20/IFeaturClassContainer可以管理IFeatureDataset中的每个要素类21IFeatureClassContainerpFeatClassContainer=(IFeatureClassContainer)pFeatureDataset;22/对CAD文件中的要素进行遍历处理23for(inti=0;ipFeatClassContainer.ClassCount-1;i+)2425IFeatureClasspFeatClass=pFeatClassContainer.get_Class(i);26if(pFeatClass.FeatureType=esriFeatureType.esriFTCoverageAnnotation)27/如果是注记,则添加注记层28pFeatureLayer=newCadAnnotationLayerClass();29else/如果是点、线、面,则添加要素层3031pFeatureLayer=newFeatureLayerClass();32pFeatureLayer.Name=pFeatClass.AliasName;33pFeatureLayer.FeatureClass=pFeatClass;34axMapControl1.Map.AddLayer(pFeatureLayer);35axMapControl1.ActiveView.Refresh();36374.加载PersonGeodatabase数据1IWorkspaceFactorypAccessWorkspaceFactory;2IFeatureWorkspacepFeatureWorkspace;3IFeatureLayerpFeatureLayer;4IFeatureDatasetpFeatureDataset;56/获取当前路径和文件名7OpenFileDialogdlg=newOpenFileDialog();8dlg.Filter=PersonalGeodatabase(*.mdb)|*.mdb|AllFiles(*.*)|*.*;9dlg.Title=OpenPersonGeodatabasefile;10dlg.ShowDialog();11stringstrFullPath=dlg.FileName;12if(strFullPath=)return;1314/打开personGeodatabase,并添加图层15pAccessWorkspaceFactory=newAccessWorkspaceFactoryClass();16/打开工作空间并遍历数据集17IWorkspacepWorkspace=pAccessWorkspaceFactory.OpenFromFile(strFullPath,0);18IEnumDatasetpEnumDataset=pWorkspace.get_Datasets(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTAny);19pEnumDataset.Reset();20IDatasetpDataset=pEnumDataset.Next();21/如果数据集是IFeatureDataset,则遍历它下面的子类22if(pDatasetisIFeatureDataset)2324pFeatureWorkspace=(IFeatureWorkspace)pAccessWorkspaceFactory.OpenFromFile(strFullPath,0);25pFeatureDataset=pFeatureWorkspace.OpenFeatureDataset(pDataset.Name);26IEnumDatasetpEnumDataset1=pFeatureDataset.Subsets;27pEnumDataset1.Reset();28IDatasetpDataset1=pEnumDataset1.Next();29/如果子类是FeatureClass,则添加到axMapControl1中30if(pDataset1isIFeatureClass)3132pFeatureLayer=newFeatureLayerClass();33pFeatureLayer.FeatureClass=pFeatureWorkspace.OpenFeatureClass(pDataset1.Name);34pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName;35axMapControl1.Map.AddLayer(pFeatureLayer);36axMapControl1.ActiveView.Refresh();3738else3940MessageBox.Show(NoFeatureLayer!);414243else4445pFeatureWorkspace=(IFeatureWorkspace)pWorkspace;46pFeatureLayer=newFeatureLayerClass();47pFeatureLayer.FeatureClass=pFeatureWorkspace.OpenFeatureClass(图层名);48pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName;49axMapControl1.Map.AddLayer(pFeatureLayer);50axMapControl1.ActiveView.Refresh();515.加载SDE数据库数据1publicESRI.ArcGIS.Geodatabase.IWorkspacearcSDEWorkspaceOpen(Stringserver,Stringinstance,Stringuser,Stringpassword,Stringdatabase,Stringversion)23try45/Createandpopulatethepropertyset6ESRI.ArcGIS.esriSystem.IPropertySetpropertySet=newESRI.ArcGIS.esriSystem.PropertySetClass();7propertySet.SetProperty(SERVER,server);8propertySet.SetProperty(INSTANCE,instance);9propertySet.SetProperty(DATABASE,database);10propertySet.SetProperty(USER,user);11propertySet.SetProperty(PASSWORD,password);12propertySet.SetProperty(VERSION,version);1314ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2workspaceFacto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论