//string strPath = Application.StartupPath + @"\World";
//axMapControl1.AddShapeFile(strPath, "world30");
//string strPath1 = Application.StartupPath + @"\World\Continents.lyr";
//string strPath2 = Application.StartupPath + @"\World\World Cities.lyr";
//axMapControl1.AddLayerFromFile(strPath1, 0);
//axMapControl1.AddLayerFromFile(strPath2, 1);
string strpath = Application.StartupPath + @"\World\World.mxd";
axMapControl1.LoadMxFile(strpath);
//string fullPath;
//string filePath; // 文件路径
//string fileName; // 文件名
//fullPath = Application.StartupPath + @"\testData.dwg";
//filePath = System.IO.Path.GetDirectoryName(fullPath);
//fileName = System.IO.Path.GetFileName(fullPath);
打开CAD数据集
//IWorkspaceFactory pWorkspaceFactory = new CadWorkspaceFactoryClass();
//IFeatureWorkspace pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath, 0);
打开一个要素集
//IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(fileName);
IFeatureClassContainer可以管理IFeatureDataset中的每个要素类
//IFeatureClassContainer pFeatureClassContainer = (IFeatureClassContainer)pFeatureDataset;
对CAD文件中的要素进行遍历处理
//IFeatureLayer pFeatureLayer;
//for(int i = 0; i < pFeatureClassContainer.ClassCount - 1; i++)
//{
// IFeatureClass pFeatureClass = pFeatureClassContainer.get_Class(i);
// if (pFeatureClass.FeatureType == esriFeatureType.esriFTCoverageAnnotation)
// {
// // 如果是注记,则添加注记层
// pFeatureLayer = new CadAnnotationLayerClass();
// }
// else
// {
// // 如果是点、线、面,则添加要素层
// pFeatureLayer = new FeatureLayerClass();
// }
// pFeatureLayer.Name = pFeatureClass.AliasName;
// pFeatureLayer.FeatureClass = pFeatureClass;
// //axMapControl1.Map.AddLayer(pFeatureLayer);
// axMapControl1.AddLayer(pFeatureLayer, 0);
// axMapControl1.ActiveView.Refresh();
//}
另附:打开栅格文件,打开TIN文件
/// <summary>
/// 打开 栅格文件
/// </summary>
/// <param name="aFileNames">打开 栅格文件 文件的全路径</param>
/// <param name="axMapControl"></param>
public void OpenFile_RasterFile(string aFileName, AxMapControl axMapControl)//打开 栅格文件
{
string fullPath;
string path;//路径
string fileName;//文件名
fullPath = aFileName;
path = System.IO.Path.GetDirectoryName(fullPath);//路径
fileName = System.IO.Path.GetFileName(fullPath);//文件名
IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactoryClass();
IRasterWorkspace pRasterWorkspace = (IRasterWorkspace)pWorkspaceFactory.OpenFromFile(path, 0);
IRasterDataset pRasterDataset = (IRasterDataset)pRasterWorkspace.OpenRasterDataset(fileName);
IRasterLayer pRasterLayer = new RasterLayerClass();
pRasterLayer.CreateFromDataset(pRasterDataset);
axMapControl.Map.AddLayer(pRasterLayer);
axMapControl.ActiveView.Refresh();
}
/// <summary>
/// 打开 TIN 文件
/// </summary>
/// <param name="aFolderName">TIN文件夹</param>
/// <param name="axMapControl">axMapControl</param>
/// <returns></returns>
public void OpenFile_TINFolder(string aFolderName, AxMapControl axMapControl)//打开TIN文件
{
string pathToWorkspace = System.IO.Path.GetDirectoryName(aFolderName);
string tinName = System.IO.Path.GetFileName(aFolderName);
IWorkspaceFactory pWorkspaceFactory = new TinWorkspaceFactoryClass();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pathToWorkspace, 0);
ITinWorkspace pTinWorkspace = pWorkspace as ITinWorkspace;
ITinLayer pTinLayer = new TinLayerClass();
if (pTinWorkspace.get_IsTin(tinName))
{
ITin pTin = pTinWorkspace.OpenTin(tinName);
pTinLayer.Dataset = pTin;
pTinLayer.ClearRenderers();
pTinLayer.Name = tinName;
}
axMapControl.AddLayer(pTinLayer);
axMapControl.ActiveView.Refresh();
}