代码1
IMemoryRelationshipClassFactory fac = mapContext.CreateObject("esriGeodatabase.MemoryRelationshipClassFactory") as IMemoryRelationshipClassFactory;
IRelationshipClass pRelationClass = sg.Open("TableToLayer", pFeatureClass, "FID", pFeatureClass1 as IObjectClass, "OBJECTID", "forward", "backward", ESRI.ArcGIS.Geodatabase.esriRelCardinality.esriRelCardinalityOneToOne);
//Perform the join
IRelQueryTableFactory pRelQryTabFactory = mapContext.CreateObject("esriGeodatabase.RelQueryTableFactory") as IRelQueryTableFactory;
ITable pRelQueryTable = pRelQryTabFactory.Open(pRelationClass, true, null, null, "", true, true) as ITable;
pFLayer.FeatureClass = (IFeatureClass)pRelQueryTable;
代码2
private void joinRelationship(IFeatureClass mainClass,String mainFiled,ITable pForeignTable,String foreignFiled) throws AutomationException,
IOException{
IFeatureLayer mainLayer = new FeatureLayer();
mainLayer.setFeatureClassByRef(mainClass);
ITable pPrimaryTable = new Table(mainClass);
IMemoryRelationshipClassFactory pMemoryRelationshipCF = new MemoryRelationshipClassFactory();
IRelationshipClass pRelationshipClass = pMemoryRelationshipCF.open("ff", new ObjectClass(pPrimaryTable),
mainFiled,new ObjectClass(pForeignTable), foreignFiled, "forward", "backward",
esriRelCardinality.esriRelCardinalityOneToOne);
IDisplayRelationshipClass pDisplayRelationshipC = (IDisplayRelationshipClass)mainLayer;
pDisplayRelationshipC.displayRelationshipClass(pRelationshipClass, esriJoinType.esriLeftOuterJoin);
FeatureLayer feaLayer = (FeatureLayer)pDisplayRelationshipC;
addLabelField((IFeatureLayer)feaLayer);
}

1579

被折叠的 条评论
为什么被折叠?



