zoukankan      html  css  js  c++  java
  • Join Attributes

    1.

    IWorkspaceFactory2 workspaceFactory = new ShapefileWorkspaceFactoryClass() as IWorkspaceFactory2;
    
                IWorkspace workspace = workspaceFactory.OpenFromFile(@"E:", 0);
    
                IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
    
                IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(“a”);
    
                IFeatureClass featureClass2 = featureWorkspace.OpenFeatureClass( "b");
    
     
    
                AddJoin aj = new AddJoin();
    
                aj.in_field = "ID";
    
                aj.in_layer_or_view = featureClass2; // @"E:jhl" + Functions.g_ROAD + "_SpatialJoin";
    
                aj.join_field = "FID";
    
                aj.join_table = @"E:a.shp";
    
                //aj.out_layer_or_view = Functions.g_ROAD + "_SpatialJoin";
    
                aj.join_type = "KEEP_ALL";
    
                Geoprocessor gp = new Geoprocessor();
    
                //gp.OverwriteOutput = true;
    
                gp.Execute(aj, null);

     

    2.

    //// Build a memory relationship class.
    
                Type memRelClassFactoryType =Type.GetTypeFromProgID("esriGeodatabase.MemoryRelationshipClassFactory");
    
                IMemoryRelationshipClassFactory memRelClassFactory = (IMemoryRelationshipClassFactory)Activator.CreateInstance(memRelClassFactoryType);
    
                IRelationshipClass relationshipClass = memRelClassFactory.Open("a", featureClass2, "ID", (IObjectClass)featureClass,
    
                    "FID", "Is Owned By", "Owns",esriRelCardinality.esriRelCardinalityOneToOne);
    
                // Open the RelQueryTable as a feature class.
    
                Type rqtFactoryType =Type.GetTypeFromProgID("esriGeodatabase.RelQueryTableFactory");
    
                IRelQueryTableFactory rqtFactory = (IRelQueryTableFactory)Activator.CreateInstance(rqtFactoryType);
    
                ITable relQueryTable = (ITable)rqtFactory.Open(relationshipClass, false, null,null, string.Empty, false, false);

     

    3.

                

    // Create the query definition.
    
                IQueryDef queryDef = featureWorkspace.CreateQueryDef();
    
                // Provide a list of tables to join.
    
                queryDef.Tables = "a,b";
    
                queryDef.Tables += "";
    
                // Set the subfields and the WhereClause (in this case, the join condition).
    
                queryDef.SubFields = "*";
    
                queryDef.WhereClause = "a.ID = b.FID + 1";
    
     
    
                // Make the new TableQueryName.
    
                IQueryName2 queryName2 = (IQueryName2)new TableQueryNameClass();
    
                queryName2.QueryDef = queryDef;
    
                queryName2.PrimaryKey = "ID";
    
                queryName2.CopyLocally = true;
    
     
    
                IDataset workspaceDataset = (IDataset)featureWorkspace;
    
                IWorkspaceName workspaceName = (IWorkspaceName)workspaceDataset.FullName;
    
     
    
                // Set the workspace and name of the new QueryTable.
    
                IDatasetName datasetName = (IDatasetName)queryName2;
    
                datasetName.WorkspaceName = workspaceName;
    
                datasetName.Name = "Join";
    
     
    
                // Open the virtual table.
    
                IName name = (IName)queryName2;
    
                ITable table = (ITable)name.Open();

     

  • 相关阅读:
    【jQuery EasyUI系列】使用属性介绍
    【jQuery EasyUI系列】创建CRUD数据网格
    [jQuery EasyUI系列] 创建增删改查应用
    [JQuery EasyUI系列]简介
    Javascript 使用小案例
    Spring学习进阶(一)初识Spring
    No plugin found for prefix 'jetty' in the current project and in the plugin groups 【转】
    工作框架各种使用整理 --创建的时候使用前面创建成功的输出
    工作框架各种使用整理---自己处理分页
    策略模式
  • 原文地址:https://www.cnblogs.com/jhlong/p/5394524.html
Copyright © 2011-2022 走看看