Join Attributes
2024-10-10 23:32:48
1.
IWorkspaceFactory2 workspaceFactory = new ShapefileWorkspaceFactoryClass() as IWorkspaceFactory2; IWorkspace workspace = workspaceFactory.OpenFromFile(@"E:\", ); 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();
最新文章
- asp.net中Ajax控件的用途(一)
- Something about ";for";
- (十一) 一起学 Unix 环境高级编程 (APUE) 之 高级 IO
- Java并发编程-ConcurrentHashMap
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (二) 图片验证码的识别
- No valid host was found
- 【转载】nginx 并发数问题思考:worker_connections,worker_processes与 max clients
- UILabel,UITextField,UIButton三大基础控件总结
- android 在5.0以后不允许使用隐式Intent方式来启动Service
- 可用fidder测试的一些安全测试点
- laravel5 数据库连接问题
- Open Live Writer
- babel在项目里的使用
- [nginx]站点目录及文件访问控制
- Linux服务器配置---ssh配置
- vim+cscope简易教程
- Java运行机制及相关术语
- 如何将cordova导入Android studio,只需两步即可
- POJ2481(树状数组:统计数字 出现个数)
- js能否实现截图,截图之后的图片数据再下载到本地?
热门文章
- springMVC基础controller类
- ​Si2151/41 6th Generation Silicon TV Tuner ICs
- mysql常用基本操作
- HDU1329 Hanoi Tower Troubles Again!——S.B.S.
- C++11 之 并发编程 (一)
- Win10 Sql2008R2 在关闭【0x80041033】
- 选中多个<;ul>;中的第一个<;li>;方法
- ionic android双击退出应用和物理返回按钮隐藏键盘的实现
- 82 fsck-检查与修复 Linux 档案系统
- 软件工程(FZU2015)赛季得分榜,第9回合