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
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
}
4.加载PersonGeodatabase数据2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
}
5.加载SDE数据库数据2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
public ESRI.ArcGIS.Geodatabase.IWorkspace arcSDEWorkspaceOpen(String server, String instance, String user, String password, String database, String version)
2
axMapControl1.Refresh();
http://www.cnblogs.com/wolf-pl/archive/2008/04/03/1135920.html
2