String strFullPath ;//mdb数据的路径地址
IWorkspaceFactory pFactory= new AccessWorkspaceFactoryClass();
IWorkspace ppOutWS = pFactory.OpenFromFile(strFullPath,0);
IFeatureWorkspace pFWS= (IFeatureWorkspace)ipWks;
ITopologyWorkspace ipTopologyWS = (ITopologyWorkspace) pFWS;
IEnumDatasetName ipDatasetNames = ppOutWS.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);
IDatasetName ipDatasetName = ipDatasetNames.Next();
IFeatureDataset ipDataset = null;
if (ipDatasetName != null)
{
ipDataset = pFWS.OpenFeatureDataset(ipDatasetName.Name);
}
ITopology ipTopology;
IWorkspace2 pWorkspace = (IWorkspace2)ipFeatDataset.Workspace;
if (pWorkspace.get_NameExists(esriDatasetType.esriDTTopology, strTopoLayerName))
{
ipTopology = ipTopologyWS.OpenTopology(strTopoLayerName);
if (ipTopology == null)
{
return;
}
ITopologyRuleContainer pTopoRuleContainer = (ITopologyRuleContainer)ipTopology;
//加载创建该拓扑层的图层
if (pTopoRuleContainer != null)
{
IEnumRule ipEnumRule = pTopoRuleContainer.Rules;
IRule ipRule = ipEnumRule.Next();
while (ipRule != null)
{
ITopologyRule ipTopologyRule = (ITopologyRule)ipRule;
if (ipTopologyRule != null)
{
//加载源目标层
nOriginClassID = ipTopologyRule.OriginClassID;
AddBuildTopoLayer(ref pMapCtrl, nOriginClassID, ipFeatClassContainer, index); //加载图层
//加载目的目标层
nDestClassID = ipTopologyRule.DestinationClassID;
AddBuildTopoLayer(ref pMapCtrl, nDestClassID, ipFeatClassContainer, index); //加载图层
}
ipRule = ipEnumRule.Next();
}
}
ITopologyLayer ipTopologyLayer = new TopologyLayerClass();
ipTopologyLayer.Topology = ipTopology;
ILayer ipLayer = (ILayer)ipTopologyLayer;
axMapControl1.Map.AddLayer(ipLayer);
}