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

📄 editlinefeature.java.svn-base

📁 aresde 空间数据开发 例子
💻 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 + -