1.加载Shapefile数据
1

IWorkspaceFactory pWorkspaceFactory;
2

IFeatureWorkspace pFeatureWorkspace;
3

IFeatureLayer pFeatureLayer;
4

5

//获取当前路径和文件名
6

OpenFileDialog dlg = new OpenFileDialog();
7

dlg.Filter = "Shape(*.shp)|*.shp|All Files(*.*)|*.*";
8

dlg.Title = "Open Shapefile data";
9

dlg.ShowDialog();
10

string strFullPath = dlg.FileName;
11

if (strFullPath == "") return;
12

int Index = strFullPath.LastIndexOf("//");
13

string filePath = strFullPath.Substring(0, Index);
14

string fileName = strFullPath.Substring(Index + 1);
15

16

//打开工作空间并添加shp文件
17

pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
18

pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath, 0);
19

pFeatureLayer = new FeatureLayerClass();
20
21

pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(fileName);
22

pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
23

axMapControl1.Map.AddLayer(pFeatureLayer);
24

axMapControl1.ActiveView.Refresh();
2.加载栅格数据
1

IWorkspaceFactory pWorkspaceFactory;
2

IRasterWorkspace pRasterWorkspace;
3

4

OpenFileDialog dlg = new OpenFileDialog();
5

dlg.Filter = "Layer File(*.lyr)|*.jpg;*.bmp;*.tiff";
6

dlg.Title = "Open Raster Data File";
7

dlg.ShowDialog();
8

//获取当前路径和文件名
9

string strFullPath = dlg.FileName;
10

if (strFullPath == "") return;
11

int Index = strFullPath.LastIndexOf("//");
12

string fileName = strFullPath.Substring(Index + 1);
13

string filePath = strFullPath.Substring(0, Index);
14

15

pWorkspaceFactory = new RasterWorkspaceFactoryClass();
16

pRasterWorkspace = (IRasterWorkspace)pWorkspaceFactory.OpenFromFile(filePath, 0);
17

IRasterDataset pRasterDataset = (IRasterDataset)pRasterWorkspace.OpenRasterDataset(fileName);
18

IRasterLayer pRasterLayer = new RasterLayerClass();
19

pRasterLayer.CreateFromDataset(pRasterDataset);
20

axMapControl1.Map.AddLayer(pRasterLayer);
21

axMapControl1.ActiveView.Refresh();
3.加载CAD数据
1

IWorkspaceFactory pWorkspaceFactory;
2

IFeatureWorkspace pFeatureWorkspace;
3

IFeatureLayer pFeatureLayer;
4

IFeatureDataset pFeatureDataset;
5

//获取当前路径和文件名
6

OpenFileDialog dlg = new OpenFileDialog();
7

dlg.Filter = "CAD(*.dwg)|*.dwg|All Files(*.*)|*.*";
8

dlg.Title = "Open CAD Data file";
9

dlg.ShowDialog();
10

string strFullPath = dlg.FileName;
11

if (strFullPath == "") return;
12

int Index = strFullPath.LastIndexOf("//");
13

string filePath = strFullPath.Substring(0, Index);
14

string fileName = strFullPath.Substring(Index + 1);
15

//打开CAD数据集
16

pWorkspaceFactory = new CadWorkspaceFactoryClass();
17

pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath, 0);
18

//打开一个要素集
19

pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(fileName);
20

//IFeaturClassContainer可以管理IFeatureDataset中的每个要素类
21

IFeatureClassContainer pFeatClassContainer = (IFeatureClassContainer)pFeatureDataset;
22

//对CAD文件中的要素进行遍历处理
23

for (int i = 0; i < pFeatClassContainer.ClassCount - 1; i++)
24

{
25

IFeatureClass pFeatClass = pFeatClassContainer.get_Class(i);
26

if (pFeatClass.FeatureType == esriFeatureType.esriFTCoverageAnnotation)
27

//如果是注记,则添加注记层
28

pFeatureLayer = new CadAnnotationLayerClass();
29

else//如果是点、线、面,则添加要素层
30

{
31

pFeatureLayer = new FeatureLayerClass();
32

pFeatureLayer.Name = pFeatClass.AliasName;
33

pFeatureLayer.FeatureClass = pFeatClass;
34

axMapControl1.Map.AddLayer(pFeatureLayer);
35

axMapControl1.ActiveView.Refresh();
36

}
37

}
4.加载PersonGeodatabase数据
1

IWorkspaceFactory pAccessWorkspaceFactory;
2

IFeatureWorkspace pFeatureWorkspace;
3

IFeatureLayer pFeatureLayer;
4

IFeatureDataset pFeatureDataset;
5

6

//获取当前路径和文件名
7

OpenFileDialog dlg = new OpenFileDialog();
8

dlg.Filter = "Personal Geodatabase(*.mdb)|*.mdb|All Files(*.*)|*.*";
9

dlg.Title = "Open PersonGeodatabase file";
10

dlg.ShowDialog();
11

string strFullPath = dlg.FileName;
12

if (strFullPath == "") return;
13

14

//打开personGeodatabase,并添加图层
15

pAccessWorkspaceFactory = new AccessWorkspaceFactoryClass();
16

//打开工作空间并遍历数据集
17

IWorkspace pWorkspace = pAccessWorkspaceFactory.OpenFromFile(strFullPath, 0);
18

IEnumDataset pEnumDataset = pWorkspace.get_Datasets(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTAny);
19

pEnumDataset.Reset();
20

IDataset pDataset = pEnumDataset.Next();
21

//如果数据集是IFeatureDataset,则遍历它下面的子类
22

if (pDataset is IFeatureDataset)
23

{
24

pFeatureWorkspace = (IFeatureWorkspace)pAccessWorkspaceFactory.OpenFromFile(strFullPath, 0);
25

pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(pDataset.Name);
26

IEnumDataset pEnumDataset1 = pFeatureDataset.Subsets;
27

pEnumDataset1.Reset();
28

IDataset pDataset1 = pEnumDataset1.Next();
29

//如果子类是FeatureClass,则添加到axMapControl1中
30

if (pDataset1 is IFeatureClass)
31

{
32

pFeatureLayer = new FeatureLayerClass();
33

pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass(pDataset1.Name);
34

pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
35

axMapControl1.Map.AddLayer(pFeatureLayer);
36

axMapControl1.ActiveView.Refresh();
37

}
38

else
39

{
40

MessageBox.Show("No FeatureLayer!");
41

}
42

}
43

else
44

{
45

pFeatureWorkspace = (IFeatureWorkspace)pWorkspace;
46

pFeatureLayer = new FeatureLayerClass();
47

pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass("图层名");
48

pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
49

axMapControl1.Map.AddLayer(pFeatureLayer);
50

axMapControl1.ActiveView.Refresh();
51

}
5.加载SDE数据库数据
1

public ESRI.ArcGIS.Geodatabase.IWorkspace arcSDEWorkspaceOpen(String server, String instance, String user, String password, String database, String version)
2

{
3

try
4

{
5

// Create and populate the property set
6

ESRI.ArcGIS.esriSystem.IPropertySet propertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass();
7

propertySet.SetProperty("SERVER", server);
8

propertySet.SetProperty("INSTANCE", instance);
9

propertySet.SetProperty("DATABASE", database);
10

propertySet.SetProperty("USER", user);
11

propertySet.SetProperty("PASSWORD", password);
12

propertySet.SetProperty("VERSION", version);
13

14

ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2 workspaceFactory;
15

workspaceFactory = (ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2)new SdeWorkspaceFactoryClass();
16

return workspaceFactory.Open(propertySet, 0);
17

}
18

catch (Exception e)
19

{
20

throw new Exception(String.Format("arcSDEWorkspaceOpen: {0}", e.Message), e);
21

}
22

}
23

24

IWorkspace pWorkspace = arcSDEWorkspaceOpen("计算机名", "5151", "数据库用户", "密码", "", "sde.DEFAULT");
25

26

IFeatureWorkspace pFeattureWS = (IFeatureWorkspace)pWorkspace;
27

IFeatureClass pFeatureClass = pFeattureWS.OpenFeatureClass("图层名");
28

IFeatureLayer pFeatureLayer = new FeatureLayerClass();
29

pFeatureLayer.FeatureClass = pFeatureClass;
30

31

axMapControl1.AddLayer(pFeatureLayer);
32

axMapControl1.Refresh();