資源簡介
在實際應用中經常會遇到面對象合并,如東三省合并為東北區。該范例實現了對象運算中的求交,合并,擦除,裁剪等功能。

代碼片段和文件信息
package?geometryOperate;
import?java.awt.Color;
import?java.io.File;
import?com.supermap.data.CursorType;
import?com.supermap.data.DatasetVector;
import?com.supermap.data.Datasource;
import?com.supermap.data.DatasourceConnectionInfo;
import?com.supermap.data.EngineType;
import?com.supermap.data.Geostyle;
import?com.supermap.data.Geometrist;
import?com.supermap.data.Geometry;
import?com.supermap.data.Recordset;
import?com.supermap.data.Workspace;
import?com.supermap.mapping.Trackinglayer;
import?com.supermap.ui.MapControl;
public?class?GeometryOperate
{
private?Workspace?myWorkspace;
private?MapControl?myMapControl;
private?Datasource?datasource;
private?DatasetVector?vector;
private?Geometry?geometry1;
private?Geometry?geometry2;
private?Geometry?resultGM;
private?Trackinglayer?trackinglayer;
public??GeometryOperate(Workspace?workspaceMapControl?mapControl)
{
this.myWorkspace=workspace;
this.myMapControl=mapControl;
loadData();
}
/**
?*?加載數據
?*/
private?void?loadData()
{
try
{
File?file=new?File(“.“);
String?str=file.getAbsolutePath().replace(“\\““/“);
String?path=str.substring(0?str.length()-1)+“data/data.udb“;
//?打開數據源
DatasourceConnectionInfo?conInfo?=?new?DatasourceConnectionInfo(path?“data“?““);
conInfo.setEngineType(EngineType.UDB);
datasource=myWorkspace.getDatasources().open(conInfo);
vector=(DatasetVector)?datasource.getDatasets().get(0);
myMapControl.getMap().setWorkspace(myWorkspace);
myMapControl.getMap().getlayers().add(vector?true);
myMapControl.getMap().viewEntire();
myMapControl.getMap().refresh();
trackinglayer=myMapControl.getMap().getTrackinglayer();
getGeometry();
}?
catch?(Exception?e)
{
System.out.println(e.getMessage());
}
}
/**
?*?獲取兩個面對象
?*/
private?void?getGeometry()
{
try
{
Recordset?recordset1=vector.query(“SMID=1“?CursorType.STATIC);
Recordset?recordset2=vector.query(“SMID=2“?CursorType.STATIC);
geometry1=recordset1.getGeometry();
geometry2=recordset2.getGeometry();
recordset1.dispose();
recordset2.dispose();
}
catch?(Exception?e)
{
System.out.println(e.getMessage());
}
}
/**
?*?設置結果對象的風格
?*/
private?Geostyle?setGeostyle()
{
Geostyle?style=new?Geostyle();
style.setFillForeColor(Color.red);
style.setFillOpaqueRate(36);
return?style;
}
/**
?*?兩個面對象求交
?*/
public?void?intersect()
{
try
{
trackinglayer.clear();
resultGM=Geometrist.intersect(geometry1?geometry2);
resultGM.setstyle(setGeostyle());
trackinglayer.add(resultGM?“相交“);
myMapControl.getMap().refresh();
}?
catch?(Exception?e)
{
System.out.println(e.getMessage());
}
}
/**
?*?兩個面對象合并
?*/
public?void?union()
{
try
{
trackinglayer.clear();
resultGM=Geometrist.union(geometry1?geometry2);
resultGM.setstyle(setGeostyle());
trackinglayer.add(resultGM?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-10-26?17:04??GeometryOperate\
?????文件?????????746??2012-10-23?13:23??GeometryOperate\.classpath
?????文件?????????391??2012-10-23?13:21??GeometryOperate\.project
?????目錄???????????0??2012-10-23?13:21??GeometryOperate\.settings\
?????文件?????????629??2012-10-23?13:21??GeometryOperate\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2012-10-23?14:22??GeometryOperate\bin\
?????目錄???????????0??2012-10-23?15:18??GeometryOperate\bin\geometryOperate\
?????文件????????5539??2012-10-23?15:27??GeometryOperate\bin\geometryOperate\GeometryOperate.class
?????文件?????????665??2012-10-23?15:21??GeometryOperate\bin\geometryOperate\Mainfr
?????文件????????1357??2012-10-23?15:21??GeometryOperate\bin\geometryOperate\Mainfr
?????文件?????????853??2012-10-23?15:21??GeometryOperate\bin\geometryOperate\Mainfr
?????文件?????????849??2012-10-23?15:21??GeometryOperate\bin\geometryOperate\Mainfr
?????文件?????????849??2012-10-23?15:21??GeometryOperate\bin\geometryOperate\Mainfr
?????文件?????????848??2012-10-23?15:21??GeometryOperate\bin\geometryOperate\Mainfr
?????文件?????????849??2012-10-23?15:21??GeometryOperate\bin\geometryOperate\Mainfr
?????文件????????3828??2012-10-23?15:21??GeometryOperate\bin\geometryOperate\Mainfr
?????目錄???????????0??2012-10-23?15:28??GeometryOperate\data\
?????文件????????1344??2012-10-23?13:57??GeometryOperate\data\data.udb
?????文件???????81920??2012-10-23?13:57??GeometryOperate\data\data.udd
?????文件??????111630??2012-10-26?17:04??GeometryOperate\GeometryOperate.pdf
?????目錄???????????0??2012-10-23?13:22??GeometryOperate\src\
?????目錄???????????0??2012-10-23?13:24??GeometryOperate\src\geometryOperate\
?????文件????????4031??2012-10-23?15:27??GeometryOperate\src\geometryOperate\GeometryOperate.java
?????文件????????3589??2012-10-23?15:21??GeometryOperate\src\geometryOperate\Mainfr
評論
共有 條評論