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 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格式的字符串,具体实现由子类完成。java.lang.String
toXML()
返回几何对象的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字符串
-
-