public abstract class Geometry
extends java.lang.Object
| 限定符和类型 | 方法和说明 |
|---|---|
abstract Geometry |
clone()
返回当前对象的一个拷贝。
|
void |
dispose()
释放该对象所占用的资源。
|
boolean |
fromGeoJSON(java.lang.String geoJSON)
从GeoJSON格式的字符串中获取Geometry;具体实现由子类完成
|
boolean |
fromXML(java.lang.String xml)
从XML加载几何对象
|
Rectangle2D |
getBounds()
返回几何对象的最小外接矩形。
|
int |
getID()
返回几何对象的标识符,此标识符用于唯一标识该几何对象。
|
Point2D |
getInnerPoint()
返回几何对象的内点。
|
GeoStyle |
getStyle()
返回几何对象的几何风格。
|
GeometryType |
getType()
返回几何对象的类型。
|
boolean |
hitTest(Point2D point,
double tolerance)
测试在指定容限允许的范围内,指定的点是否在几何对象的范围内。
|
boolean |
isEmpty()
判断几何对象是否为空值,不同的几何对象的是否为空的条件各异,请参见各具体几何类型的该方法。
|
void |
offset(double dx,
double dy)
将此几何对象偏移指定的量。
|
void |
resize(Rectangle2D bounds)
缩放此几何对象,使其最小外接矩形等于指定的矩形对象。
|
void |
rotate(Point2D basePoint,
double angle)
以指定点为基点将此几何对象旋转指定角度,逆时针方向为正方向,角度以度为单位。
|
void |
setEmpty()
清空几何对象中的空间数据,但几何对象的标识符和几何风格保持不变。
|
void |
setStyle(GeoStyle value)
设置几何对象的风格。
|
java.lang.String |
toGeoJSON()
将Geometry转换成GeoJSON格式的字符串,具体实现由子类完成
支持的几何类型:点(GeoPoint)、线(GeoLine)、面(GeoRegion),包括具有多个子对象的线和面
|
java.lang.String |
toXML()
返回几何对象的XML表示
|
public Rectangle2D getBounds()
Rectangle2D 对象表示几何对象的最小外接矩形。Rectangle2Dpublic Point2D getInnerPoint()
内点可以在很多情况下被使用。
public int getID()
public boolean isEmpty()
public GeoStyle getStyle()
public void setStyle(GeoStyle value)
value - 用来设置几何对象风格的 GeoStyle 对象。public GeometryType getType()
GeometryType 类所定义的常量值之一,具体请参见 GeometryType类。GeometryTypepublic abstract Geometry clone()
clone 在类中 java.lang.Objectpublic boolean hitTest(Point2D point, double tolerance)
即判断以测试点为圆心,以指定的容限为半径的圆是否与该几何对象有交集,若有交集,则返回 true;否则返回 false。
point - 测试点。tolerance - 容限值,单位与数据集的单位相同。Point2Dpublic void offset(double dx,
double dy)
如图所示为一个面对象平移后的效果。

dx - 偏移 X 坐标的量。dy - 偏移 Y 坐标的量。
public void offsetTest() {
// 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象
// 从数据源中取出一个数据集 dataset
// 取出数据集中 SmID=53 的记录,返回其对应的几何对象
DatasetVector dataset = (DatasetVector) datasource.getDatasets().get(
"World");
Recordset recordset = dataset.query("SmID=53", CursorType.STATIC);
Geometry geometry = recordset.getGeometry();
// 判断几何对象是否为空,不为空时依次对几何对象进行重构、设置样式、平移、对称、旋转以及缩放操作
if (!geometry.isEmpty()) {
geometry.fromXML(geometry.toXML());
geometry.setStyle(new GeoStyle());
geometry.offset(100, 100);
Rectangle2D rectangle2D = geometry.getBounds();
geometry.mirror(geometry.getInnerPoint(), new Point2D(rectangle2D
.getBottom(), rectangle2D.getRight()));
geometry.rotate(geometry.getInnerPoint(), 30);
geometry.resize(new Rectangle2D(0, 0, 1024, 1024));
}
// 释放资源
recordset.dispose();
dataset.close();
geometry.dispose();
}
public void resize(Rectangle2D bounds)
对于几何点,该方法只改变其位置,将其移动到指定的矩形的中心点;对于文本对象,该方法将缩放文本大小。
改变几何对象的大小 当宽度为负数时对象水平翻转,当高度为负数时,对象垂直翻转。
如图所示为对面对象的缩放的效果。
当传入的矩形对象的面积为0时,抛出异常 ArgumentInvalid。
bounds - 调整大小后几何对象的范围。ArgumentInvalid - 如果 bounds 的面积为0。public void rotate(Point2D basePoint, double angle)
以指定点为基点将此几何对象旋转指定角度,逆时针方向为正方向,角度以度为单位。
如图所示的是对面对象以指定基点旋转90度后的效果。

basePoint - 旋转的基点。angle - 旋转的角度,单位为度。public void setEmpty()
public void dispose()
public java.lang.String toGeoJSON()
支持的几何类型:点(GeoPoint)、线(GeoLine)、面(GeoRegion),包括具有多个子对象的线和面
public boolean fromGeoJSON(java.lang.String geoJSON)
geoJSON - GeoJSON字符串public boolean fromXML(java.lang.String xml)
xml - 几何对象的xml字符串public java.lang.String toXML()