📄 editlinefeature.java.svn-base
字号:
import java.io.IOException;
import com.esri.arcgis.datasourcesGDB.SdeWorkspaceFactory;
import com.esri.arcgis.geodatabase.FeatureClass;
import com.esri.arcgis.geodatabase.FeatureCursor;
import com.esri.arcgis.geodatabase.IFeature;
import com.esri.arcgis.geodatabase.IFeatureBuffer;
import com.esri.arcgis.geodatabase.IFeatureCursor;
import com.esri.arcgis.geodatabase.IFeatureEdit;
import com.esri.arcgis.geodatabase.IFeatureWorkspace;
import com.esri.arcgis.geodatabase.IQueryFilter;
import com.esri.arcgis.geodatabase.IWorkspace;
import com.esri.arcgis.geodatabase.IWorkspaceEdit;
import com.esri.arcgis.geodatabase.IWorkspaceEditProxy;
import com.esri.arcgis.geodatabase.QueryFilter;
import com.esri.arcgis.geometry.IPoint;
import com.esri.arcgis.geometry.IPointCollection;
import com.esri.arcgis.geometry.IPolyline;
import com.esri.arcgis.geometry.Point;
import com.esri.arcgis.geometry.Polyline;
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 EditLineFeature {
public static void edit() throws Exception{
com.esri.arcgis.system.PropertySet propSet = new PropertySet();
//连接参数
propSet.setProperty("SERVER", "192.168.1.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();
IWorkspace space=swf.open(propSet, 0);
IFeatureWorkspace ifw=(IFeatureWorkspace)space;
FeatureClass fcl=new FeatureClass(ifw.openFeatureClass("testLine"));
/*FeatureCursor fc=new FeatureCursor(fcl.insert(true));
IFeatureBuffer fb=fcl.createFeatureBuffer();
IPoint from=new Point();
IPoint to=new Point();
IPoint ed=new Point();
from.putCoords(100, 100);
to.putCoords(500, 100);
//ed.putCoords(100,50);
IPolyline p=new Polyline();
IPointCollection igc=(IPointCollection)p;
igc.addPoint(from, null, null);
igc.addPoint(to, null, null);
//igc.addPoint(ed, null, null);
p=(IPolyline)igc;
fb.setShapeByRef(p);
fb.setValue(fc.findField("name"), "AA");
fc.insertFeature(fb);
fc.flush();*/
IWorkspaceEdit editor = new IWorkspaceEditProxy(space);
editor.startEditing(true);
editor.startEditOperation();
IQueryFilter q= new QueryFilter();
//查询条件
q.setWhereClause("objectid = 1");
IFeatureCursor cursor = new FeatureCursor(fcl.update(q,false));
IFeature f = cursor.nextFeature();
IPoint splitPoint =new Point();
splitPoint.putCoords(300, 100);
boolean[] splitHappened=new boolean[1];
int[] newPartIndex= new int[1];
int[] newSegmentIndex = new int[1];
if(f!=null){
IFeatureEdit pFeatureEdit = (IFeatureEdit)f;
pFeatureEdit.split(splitPoint);
}
editor.stopEditing(true);
}
public static void main(String[] args) throws IOException{
EngineInitializer.initializeEngine();
final AoInitialize aoInit =new AoInitialize();
try{
aoInit.initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
edit();
}catch(Exception e){
e.printStackTrace();
}finally{
aoInit.shutdown();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -