com.supermap.data
类 Geometry
- java.lang.Object
-
- com.supermap.data.Geometry
-
- 直接已知子类:
- GeoArc, GeoBSpline, GeoCardinal, GeoChord, GeoCircle, GeoCompound, GeoCurve, GeoEllipse, GeoEllipticArc, GeoGraphicObject, GeoLine, GeoLineM, Geometry3D, GeoPie, GeoPoint, GeoRectangle, GeoRegion, GeoText
public abstract class Geometry extends java.lang.Object
-
-
方法概要
所有方法 实例方法 抽象方法 具体方法 限定符和类型 方法和说明 abstract Geometryclone()返回当前对象的一个拷贝。voiddispose()释放该对象所占用的资源。booleanfromGeoJSON(java.lang.String geoJSON)从GeoJSON格式的字符串中获取Geometry;具体实现由子类完成。booleanfromXML(java.lang.String xml)从XML加载几何对象。Rectangle2DgetBounds()返回几何对象的最小外接矩形。intgetID()返回几何对象的标识符,此标识符用于唯一标识该几何对象。Point2DgetInnerPoint()返回几何对象的内点。GeoStylegetStyle()返回几何对象的几何风格。GeometryTypegetType()返回几何对象的类型。booleanhitTest(Point2D point, double tolerance)测试在指定容限允许的范围内,指定的点是否在几何对象的范围内。booleanisEmpty()判断几何对象是否为空值,不同的几何对象的是否为空的条件各异,请参见各具体几何类型的该方法。voidoffset(double dx, double dy)将此几何对象偏移指定的量。voidresize(Rectangle2D bounds)缩放此几何对象,使其最小外接矩形等于指定的矩形对象。voidrotate(Point2D basePoint, double angle)以指定点为基点将此几何对象旋转指定角度,逆时针方向为正方向,角度以度为单位。voidsetEmpty()清空几何对象中的空间数据,但几何对象的标识符和几何风格保持不变。voidsetStyle(GeoStyle value)设置几何对象的风格。java.lang.StringtoGeoJSON()将Geometry转换成GeoJSON格式的字符串,具体实现由子类完成。java.lang.StringtoXML()返回几何对象的XML表示。
-
-
-
方法详细资料
-
getBounds
public Rectangle2D getBounds()
返回几何对象的最小外接矩形。点对象的最小外接矩形退化为一个点,即矩形的左边界坐标值等于其右边界坐标值,上边界坐标值等于其下边界的坐标值,分别为该点的 x 坐标和 y 坐标。- 返回:
- 一个
Rectangle2D对象表示几何对象的最小外接矩形。 - 另请参阅:
Rectangle2D- Default:
- 默认值为 Rectangle2D(0,0,0,0)。
-
getInnerPoint
public Point2D getInnerPoint()
返回几何对象的内点。对于不同的几何对象,其位置不同。- 点对象的内点是该点本身;
- 线对象的内点是线对象的第一个子对象的内点(当线对象只有一个子对象时,取该子对象的内点),当该子对象有奇数个节点时,取中间一个节点为内点,当该子对象有偶数个节点时(多于两个节点的情况),取中间两个节点之后者,当该子对象有两个节点时,取两节点之中心为内点;
- 面对象的内点是在几何对象的内部,并靠近中央的点;
- 文本对象的内点是该文本对象的第一个子对象的锚点。
内点可以在很多情况下被使用。
- 返回:
- 几何对象的内点。
- Default:
- 默认值为 Point2D(0,0)。
-
getID
public int getID()
返回几何对象的标识符,此标识符用于唯一标识该几何对象。- 返回:
- 该几何对象的标识符。
- Default:
- 几何对象的标识默认值为0。
-
isEmpty
public boolean isEmpty()
判断几何对象是否为空值,不同的几何对象的是否为空的条件各异,请参见各具体几何类型的该方法。- 返回:
- 一个布尔值指定几何对象是否为空。
- Default:
- 如果几何对象为空值则为 true,否则为 false。默认值为 true。
-
getStyle
public GeoStyle getStyle()
返回几何对象的几何风格。几何风格是用于定义几何对象在显示时的符号、线型、填充模式等信息。- 返回:
- 几何对象的风格。
- Default:
- 默认值为 null。
-
setStyle
public void setStyle(GeoStyle value)
设置几何对象的风格。几何风格是用于定义几何对象在显示时的符号、线型、填充模式等信息。- 参数:
value- 用来设置几何对象风格的GeoStyle对象。
-
getType
public GeometryType getType()
返回几何对象的类型。该方法的返回值为GeometryType类所定义的常量值之一,具体请参见GeometryType类。- 返回:
- 几何对象的类型。
- 另请参阅:
GeometryType
-
clone
public abstract Geometry clone()
返回当前对象的一个拷贝。- 覆盖:
clone在类中java.lang.Object- 返回:
- 通过克隆操作得到的一个新的几何对象。
-
hitTest
public boolean hitTest(Point2D point, double tolerance)
测试在指定容限允许的范围内,指定的点是否在几何对象的范围内。即判断以测试点为圆心,以指定的容限为半径的圆是否与该几何对象有交集,若有交集,则返回 true;否则返回 false。
- 参数:
point- 测试点。tolerance- 容限值,单位与数据集的单位相同。- 返回:
- 测试结果,点中了该几何对象返回 true;否则返回 false。
- 另请参阅:
Point2D
-
offset
public void offset(double dx, double dy)将此几何对象偏移指定的量。如图所示为一个面对象平移后的效果。

- 参数:
dx- 偏移 X 坐标的量。dy- 偏移 Y 坐标的量。- Example:
- 以下代码示范如何为几何对象进行重构、设置样式、平移、对称、旋转以及缩放操作。
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(); }
-
resize
public void resize(Rectangle2D bounds)
缩放此几何对象,使其最小外接矩形等于指定的矩形对象。对于几何点,该方法只改变其位置,将其移动到指定的矩形的中心点;对于文本对象,该方法将缩放文本大小。
改变几何对象的大小 当宽度为负数时对象水平翻转,当高度为负数时,对象垂直翻转。
如图所示为对面对象的缩放的效果。
当传入的矩形对象的面积为0时,抛出异常 ArgumentInvalid。
- 参数:
bounds- 调整大小后几何对象的范围。- 抛出:
ArgumentInvalid- 如果 bounds 的面积为0。
-
rotate
public void rotate(Point2D basePoint, double angle)
以指定点为基点将此几何对象旋转指定角度,逆时针方向为正方向,角度以度为单位。
如图所示的是对面对象以指定基点旋转90度后的效果。

- 参数:
basePoint- 旋转的基点。angle- 旋转的角度,单位为度。
-
setEmpty
public void setEmpty()
清空几何对象中的空间数据,但几何对象的标识符和几何风格保持不变。
-
dispose
public void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
-
toGeoJSON
public java.lang.String toGeoJSON()
将Geometry转换成GeoJSON格式的字符串,具体实现由子类完成。支持的几何类型:点(GeoPoint)、线(GeoLine)、面(GeoRegion),包括具有多个子对象的线和面。
- 返回:
- 返回GeoJSON字符串,不支持的类型将返回null
-
fromGeoJSON
public boolean fromGeoJSON(java.lang.String geoJSON)
从GeoJSON格式的字符串中获取Geometry;具体实现由子类完成。- 参数:
geoJSON- GeoJSON字符串- 返回:
- 返回是否转换成功
-
fromXML
public boolean fromXML(java.lang.String xml)
从XML加载几何对象。- 参数:
xml- 几何对象的xml字符串- 返回:
- boolean 读取成功返回true,否则返回false
-
toXML
public java.lang.String toXML()
返回几何对象的XML表示。- 返回:
- 返回几何对象的xml字符串
-
-