- 打开MXD文件
axMapControl1.LoadMxFile(filename, 0, Type.Missing);//filename为mxd文件路径
- 打开MDB文件获取工作空间,工作空间里包含数据集和要素类
IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pPath, 0);
遍历工作空间根据名字(name)获取要素类 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;
}