- 打开MXD文件
axMapControl1.LoadMxFile(filename, 0, Type.Missing);//filename为mxd文件路径
- 打开MDB文件获取工作空间,工作空间里包含数据集和要素类
遍历工作空间根据名字(name)获取要素类IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass(); IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pPath, 0);
IFeatureClass ifcresult = null; IDataset dt; IEnumDataset dts = wk.Datasets[esriDatasetType.esriDTAny]; while ((dt = dts.Next()) != null) { if (dt.Type == esriDatasetType.esriDTFeatureDataset) { IFeatureDataset fdt = dt as IFeatureDataset; if (fdt != null) { IEnumDataset subdts = fdt.Subsets; if (subdts != null) { IDataset isubdt; while ((isubdt = subdts.Next()) != null) { IFeatureClass ifc = isubdt as IFeatureClass; if (ifc != null) { if (isubdt.Name == name) { ifcresult = ifc; Marshal.ReleaseComObject(isubdt); isubdt = null; Marshal.ReleaseComObject(subdts); subdts = null; break; } else { Marshal.ReleaseComObject(isubdt); isubdt = null; } } } } } } else if (dt.Type == esriDatasetType.esriDTFeatureClass) { IFeatureClass ifc = dt as IFeatureClass; if (dt.Name == name) { ifcresult = ifc; break; } } }
- 添加要素类到地图控件
public void AddFeatureClass(IFeatureClass ifc) { IFeatureLayer ifl = new FeatureLayer(); ifl.FeatureClass = ifc; ifl.Name = ifc.AliasName; axMapControl1.AddLayer(ifl); }
- 添加栅格数据到地图控件
public void AddRaster(IRasterDataset irc) { //影像金字塔判断与创建 IRasterPyramid3 pRasPyrmid; pRasPyrmid = irc as IRasterPyramid3; if (pRasPyrmid != null) { if (!(pRasPyrmid.Present)) { pRasPyrmid.Create(); //创建金字塔 } } IRaster pRaster; pRaster = irc.CreateDefaultRaster(); IRasterLayer pRasterLayer; pRasterLayer = new RasterLayerClass(); pRasterLayer.CreateFromRaster(pRaster); ILayer pLayer = pRasterLayer as ILayer; axMapControl1.AddLayer(pLayer, 0); }
- 添加shp文件到地图控件
public IFeatureClass OpenShpFeatureClass(string shppath) { IFeatureClass ifc = null; IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactory(); if (null != shppath) { string dir = System.IO.Path.GetDirectoryName(shppath); IWorkspace pworkspace = workspaceFactory.OpenFromFile(dir, 0); int loc1; loc1 = shppath.LastIndexOf("\\"); string pFoldr = shppath.Substring(0, loc1); string pFileName = shppath.Substring(loc1 + 1); ifc = GetFeatureClass(pFileName, pworkspace); } return ifc; }