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
对象表示几何对象的最小外接矩形。Rectangle2D
public Point2D getInnerPoint()
内点可以在很多情况下被使用。
public int getID()
public boolean isEmpty()
public GeoStyle getStyle()
public void setStyle(GeoStyle value)
value
- 用来设置几何对象风格的 GeoStyle
对象。public GeometryType getType()
GeometryType
类所定义的常量值之一,具体请参见 GeometryType
类。GeometryType
public abstract Geometry clone()
clone
在类中 java.lang.Object
public boolean hitTest(Point2D point, double tolerance)
即判断以测试点为圆心,以指定的容限为半径的圆是否与该几何对象有交集,若有交集,则返回 true;否则返回 false。
point
- 测试点。tolerance
- 容限值,单位与数据集的单位相同。Point2D
public 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()