📄 createrelationshipclass.java.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 + -