类 Geometry
- java.lang.Object
-
- com.supermap.data.InternalHandle
-
- com.supermap.data.InternalHandleDisposable
-
- com.supermap.data.Geometry
-
- 所有已实现的接口:
- IDisposable
- 直接已知子类:
- GeoArc, GeoBezier3Curve, GeoBSpline, GeoCardinal, GeoChord, GeoCircle, GeoCompound, GeoCompoundCurve, GeoCurve, GeoCurvePolygon, GeoEllipse, GeoEllipticArc, GeoEntity, GeoGraphicCompound, GeoLegend, GeoLine, GeoLineM, GeoMap, GeoMapBorder, GeoMapGrid, GeoMapScale, Geometry3D, GeometryEPS, GeometryParametric, GeoMultiCurve, GeoMultiSurface, GeoNorthArrow, GeoPicture, GeoPie, GeoPoint, GeoRectangle, GeoRegion, GeoRoundRectangle, GeoText, GeoUserDefined
public abstract class Geometry extends com.supermap.data.InternalHandleDisposable
-
-
方法概要
所有方法 静态方法 实例方法 抽象方法 具体方法 限定符和类型 方法和说明 static void
addCustomGeometryCreatedListener(CustomGeometryCreatedListener l)
添加一个用于接收自定义几何对象创建结束事件(CustomGeometryCreatedEvent
)的监听器。abstract Geometry
clone()
克隆一个Geometry对象。abstract void
dispose()
释放该对象所占用的资源。boolean
fromXML(String xml)
根据传入的 XML 字符串重新构造几何对象。Rectangle2D
getBounds()
返回几何对象的最小外接矩形。int
getID()
返回几何对象的标识符,此标识符用于唯一标识该几何对象。Point2D
getInnerPoint()
返回几何对象的内点。GeoStyle
getStyle()
返回几何对象的几何风格。GeometryType
getType()
返回几何对象的类型。Object
getVariantID()
返回几何对象的 ID 标识符,此标识符用于唯一标识该几何对象。boolean
hitTest(Point2D point, double tolerance)
测试在指定容限允许的范围内,指定的点是否在几何对象的范围内。boolean
isEmpty()
判断几何对象是否为空值,不同的几何对象的是否为空的条件各异,请参见各具体几何类型的该方法。Geometry
mirror(Point2D startPoint, Point2D endPoint)
返回此几何对象关于指定线段对称的几何对象。void
offset(double dx, double dy)
将此几何对象偏移指定的量。static void
removeCustomGeometryCreatedListener(CustomGeometryCreatedListener l)
移除一个用于接收自定义几何对象创建结束事件(CustomGeometryCreatedEvent
)的监听器。void
resize(Rectangle2D bounds)
缩放此几何对象,使其最小外接矩形等于指定的矩形对象。void
rotate(Point2D basePoint, double angle)
以指定点为基点将此几何对象旋转指定角度,逆时针方向为正方向,角度以度为单位。void
setBounds(Rectangle2D bounds)
设置最小外接矩形。void
setEmpty()
清空几何对象中的空间数据,但几何对象的标识符和几何风格保持不变。void
setID(int value)
设置几何对象的标识符,此标识符用于唯一标识该几何对象。void
setStyle(GeoStyle value)
设置几何对象的风格。String
toXML()
根据 GML 3.0 规范,将该几何对象的空间数据输出为 XML 字符串。
-
-
-
方法详细资料
-
getBounds
public Rectangle2D getBounds()
返回几何对象的最小外接矩形。点对象的最小外接矩形退化为一个点,即矩形的左边界坐标值等于其右边界坐标值,上边界坐标值等于其下边界的坐标值,分别为该点的 x 坐标和 y 坐标。- 返回:
- 一个
Rectangle2D
对象表示几何对象的最小外接矩形。 - 另请参阅:
Rectangle2D
- 默认值:
- 默认值为 Rectangle2D(0,0,0,0)。
-
setBounds
public void setBounds(Rectangle2D bounds)
设置最小外接矩形。- 参数:
bounds
- 设置的最小外接矩形
-
getInnerPoint
public Point2D getInnerPoint()
返回几何对象的内点。对于不同的几何对象,其位置不同。- 点对象的内点是该点本身;
- 线对象的内点是线对象的第一个子对象的内点(当线对象只有一个子对象时,取该子对象的内点),当该子对象有奇数个节点时,取中间一个节点为内点,当该子对象有偶数个节点时(多于两个节点的情况),取中间两个节点之后者,当该子对象有两个节点时,取两节点之中心为内点;
- 面对象的内点是在几何对象的内部,并靠近中央的点;
- 文本对象的内点是该文本对象的第一个子对象的锚点。
内点可以在很多情况下被使用,例如,当创建标签专题图时,几何对象的内点将作为标签专题图的锚点。
- 返回:
- 几何对象的内点。
- 默认值:
- 默认值为 Point2D(0,0)。
-
getID
public int getID()
返回几何对象的标识符,此标识符用于唯一标识该几何对象。- 返回:
- 该几何对象的标识符。
-
getVariantID
public Object getVariantID()
返回几何对象的 ID 标识符,此标识符用于唯一标识该几何对象。- 返回:
- 成功返回该几何对象的 ID 标识符,失败返回空值。
-
setID
public void setID(int value)
设置几何对象的标识符,此标识符用于唯一标识该几何对象。- 参数:
value
- 表示几何对象的标识符的整数。
-
isEmpty
public boolean isEmpty()
判断几何对象是否为空值,不同的几何对象的是否为空的条件各异,请参见各具体几何类型的该方法。- 返回:
- 一个布尔值指定几何对象是否为空。
- 另请参阅:
Geometry.offset(double, double)
- 示范代码:
- 请参见
Geometry.offset()
方法的示例。 - 默认值:
- 如果几何对象为空值则为 true,否则为 false。默认值为 true。
-
getStyle
public GeoStyle getStyle()
返回几何对象的几何风格。几何风格是用于定义几何对象在显示时的符号、线型、填充模式等信息。- 返回:
- 几何对象的风格。
- 默认值:
- 默认值为 null。
-
setStyle
public void setStyle(GeoStyle value)
设置几何对象的风格。几何风格是用于定义几何对象在显示时的符号、线型、填充模式等信息。- 参数:
value
- 用来设置几何对象风格的GeoStyle
对象。- 另请参阅:
Geometry.offset(double, double)
- 示范代码:
- 请参见
Geometry.offset()
方法的示例。
-
getType
public GeometryType getType()
返回几何对象的类型。该方法的返回值为GeometryType
类所定义的常量值之一,具体请参见GeometryType
类。- 返回:
- 几何对象的类型。
- 另请参阅:
GeometryType
-
fromXML
public boolean fromXML(String xml)
根据传入的 XML 字符串重新构造几何对象。该 XML 必须符合 GML3.0 规范。调用该方法时,首先将该几何对象的原始数据清空,然后根据传入的 XML 字符串重新构造该几何对象。
GML (Geography Markup Language)即地理标识语言, GML 能够表示地理空间对象的空间数据和非空间属性数据。GML 是基于 XML 的空间信息编码标准,由开放式地理信息系统协会 OpenGIS Consortium (OGC) 提出,得到了许多公司的大力支持,如 Oracle、Galdos、MapInfo、CubeWerx 等。
GML 作为一个空间数据编码规范,提供了一套基本的标签、公共的数据模型,以及用户构建应用模式(GML Application Schemas)的机制。
- 参数:
xml
- XML 格式的字符串。- 返回:
- 如果构造成功返回 true,否则返回 false。
- 另请参阅:
Geometry.offset(double, double)
- 示范代码:
- 请参见
Geometry.offset()
方法的示例。
-
hitTest
public boolean hitTest(Point2D point, double tolerance)
测试在指定容限允许的范围内,指定的点是否在几何对象的范围内。即判断以测试点为圆心,以指定的容限为半径的圆是否与该几何对象有交集,若有交集,则返回 true;否则返回 false。
- 参数:
point
- 测试点。tolerance
- 容限值,单位与数据集的单位相同。- 返回:
- 测试结果,点中了该几何对象返回 true;否则返回 false。
- 另请参阅:
Point2D
-
mirror
public Geometry mirror(Point2D startPoint, Point2D endPoint)
返回此几何对象关于指定线段对称的几何对象。文本对象不支持该方法。- 参数:
startPoint
- 线段的起点。endPoint
- 线段的终点。- 返回:
- 该几何对象关于指定对称的几何对象。
- 另请参阅:
Geometry.offset(double,double)
- 示范代码:
- 请参见
Geometry.offset()
方法的示例。
-
offset
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(); }
-
resize
public void resize(Rectangle2D bounds)
缩放此几何对象,使其最小外接矩形等于指定的矩形对象。对于几何点,该方法只改变其位置,将其移动到指定的矩形的中心点;对于文本对象,该方法将缩放文本大小。
如图所示为对面对象的缩放的效果。
当传入的矩形对象的面积为0时,抛出异常 ArgumentInvalid。
- 参数:
bounds
- 调整大小后几何对象的范围。- 抛出:
IllegalArgumentException
- 如果 bounds 的面积为0。
-
rotate
public void rotate(Point2D basePoint, double angle)
以指定点为基点将此几何对象旋转指定角度,逆时针方向为正方向,角度以度为单位。目前三维矢量面
GeoRegion3D
不支持旋转 rotate 的方法。如果想使用旋转功能,需要先使用二维矢量面的旋转方法,再添加到三维场景中。如图所示的是对面对象以指定基点旋转90度后的效果。
- 参数:
basePoint
- 旋转的基点。angle
- 旋转的角度,单位为度。
-
setEmpty
public void setEmpty()
清空几何对象中的空间数据,但几何对象的标识符和几何风格保持不变。
-
toXML
public String toXML()
根据 GML 3.0 规范,将该几何对象的空间数据输出为 XML 字符串。注意:几何对象输出的 XML 字符串只含有该几何对象的地理坐标值,不含有该几何对象的风格和 ID 等信息。
- 返回:
- 表示几何对象的 XML 字符串。
- 另请参阅:
Geometry.offset(double, double)
- 示范代码:
- 请参见
Geometry.offset()
方法的示例。
-
dispose
public abstract void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
-
addCustomGeometryCreatedListener
public static void addCustomGeometryCreatedListener(CustomGeometryCreatedListener l)
添加一个用于接收自定义几何对象创建结束事件(CustomGeometryCreatedEvent
)的监听器。- 参数:
l
- 一个用于接收自定义几何对象创建结束事件的监听器。
-
removeCustomGeometryCreatedListener
public static void removeCustomGeometryCreatedListener(CustomGeometryCreatedListener l)
移除一个用于接收自定义几何对象创建结束事件(CustomGeometryCreatedEvent
)的监听器。- 参数:
l
- 一个用于接收自定义几何对象创建结束事件的监听器。
-
-
Copyright © 2021–2024 SuperMap. All rights reserved.