关联表查询

代码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);   
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值