⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createrelationshipclass.java.svn-base

📁 aresde 空间数据开发 例子
💻 SVN-BASE
字号:
import java.io.IOException;

import com.esri.arcgis.datasourcesGDB.SdeWorkspaceFactory;
import com.esri.arcgis.geodatabase.IFeatureClass;
import com.esri.arcgis.geodatabase.IFeatureDataset;
import com.esri.arcgis.geodatabase.IFeatureWorkspace;
import com.esri.arcgis.geodatabase.IRelationship;
import com.esri.arcgis.geodatabase.IRelationshipClass;
import com.esri.arcgis.geodatabase.IRelationshipClassContainer;
import com.esri.arcgis.geodatabase.IRelationshipClassContainerProxy;
import com.esri.arcgis.system.AoInitialize;
import com.esri.arcgis.system.EngineInitializer;
import com.esri.arcgis.system.PropertySet;
import com.esri.arcgis.system.esriLicenseProductCode;


public class CreateRelationshipClass {
	
	
	public static void create() throws Exception{
		com.esri.arcgis.system.PropertySet propSet = new PropertySet();
		
		//连接参数
		propSet.setProperty("SERVER", "10.158.164.220");
		propSet.setProperty("INSTANCE", "5151");
		//propSet.setProperty("DATABASE", "sde");
		propSet.setProperty("USER", "sde");
		propSet.setProperty("PASSWORD", "sde");
		propSet.setProperty("VERSION", "SDE.DEFAULT");
		
		SdeWorkspaceFactory swf=new SdeWorkspaceFactory();
		
		//连接SDE
		IFeatureWorkspace ifw=(IFeatureWorkspace)swf.open(propSet, 0);
		
		IFeatureDataset ifd= ifw.openFeatureDataset("ddddd");
		
		IFeatureClass point=ifw.openFeatureClass("point");
		IFeatureClass line=ifw.openFeatureClass("line");
		
		IRelationshipClassContainer ic=new IRelationshipClassContainerProxy(ifd);
		
		/**
		 * 
		 * createRelationshipClass(java.lang.String relClassName,
                                                  IObjectClass originClass,
                                                  IObjectClass destinationClass,
                                                  java.lang.String forwardLabel,
                                                  java.lang.String backwardLabel,
                                                  int cardinality,
                                                  int notification,
                                                  boolean isComposite,
                                                  boolean isAttributed,
                                                  IFields relAttrFields,
                                                  java.lang.String originPrimaryKey,
                                                  java.lang.String destPrimaryKey,
                                                  java.lang.String originForeignKey,
                                                  java.lang.String destForeignKey)
		
		 *
		 *可以建立一个没有FeatureDataset成员的独立的relationship class 
		 *如果many-to-many或者isAttributed是true就需要指定4个key
		 *OriginPrimaryKey和DestinationPrimaryKey是源对象和目标对象的主键
		 *OriginForeignKey和DestinationForeignKey是被创建的外键名称
		 * */
		ic.createRelationshipClass("LineToPoint", line, point, "R_line", "R_point",
				com.esri.arcgis.geodatabase.esriRelCardinality.esriRelCardinalityOneToMany,
				com.esri.arcgis.geodatabase.esriRelNotification.esriRelNotificationNone,
				false, false, null, "OBJECTID", "", "OBJECTID", "");
		
	}
	
	public static void main(String[] args) throws IOException{
		EngineInitializer.initializeEngine();
		final AoInitialize aoInit =new AoInitialize();
		try{
			aoInit.initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
			
			create();
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			aoInit.shutdown();
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -