public class Geometry
extends java.lang.Object
implements java.io.Serializable
几何对象类。
该类用于描述几何对象。描述几何对象(矢量)的特征数据(坐标点对、几何对象的类型等)以及相关的处理方法。几何对象通常可用于空间分析、空间关系运算、缓冲区查询分析等。
该类所表达的几何对象仅包含空间信息、形状信息等,并不包括属性信息。而 Entity 是一个能够描述空间实体对象的类,它不仅描述空间信息,还能够描述实体的属性信息。
限定符和类型 | 字段和说明 |
---|---|
int |
id
几何对象唯一标识符。
|
int[] |
parts
描述几何对象中各个子对象所包含的节点的个数。
|
int[] |
partTopo
part的拓扑结构,目前只有GeometryType = REGION的Geometry包含此字段 1代表为岛,-1代表为洞
|
Point2D[] |
points
组成几何对象的节点的二维坐标对数组。
|
PrjCoordSys |
prjCoordSys
几何对象的投影坐标系。
|
Style |
style
几何对象的风格。
|
GeometryType |
type
几何对象的类型。
|
限定符和类型 | 方法和说明 |
---|---|
static boolean |
equals(Geometry geo1, Geometry geo2, double precision)
根据指定的对比精度,判断两个几何对象是否相等。
|
boolean |
equals(java.lang.Object obj)
比较指定对象与当前 Geometry 对象是否相等。
|
static Geometry |
fromPoint2D(Point2D point2D)
根据一个二维地理坐标点创建一个几何点对象。
|
static Geometry |
fromPoint2Ds(Point2D[] points, GeometryType feature)
根据二维地理坐标点数组和指定的几何对象类型创建几何对象。
|
static Geometry |
fromPoint2Ds(Point2D[] points, GeometryType type, int[] parts)
根据二维地理坐标点数组和指定的几何对象类型创建几何对象。
|
static Geometry |
fromRect2D(Rectangle2D rect2D)
根据一个二维地理矩形创建一个几何多边形对象。
|
Rectangle2D |
getBounds()
获取几何对象的最小外接矩形。
|
Point2D |
getCenter()
获取几何对象中心点。
|
int |
hashCode()
获取哈希码。
|
static boolean |
isGeometryCAD(Geometry geometry)
判断传入的Geometry是否属于GeometryCAD
|
static boolean |
isPointInPolygon(Point2D point, Geometry polygon)
判断点与多边形的位置关系。
|
void |
setCenter(Point2D point2D)
设置中心点,目前该方法未实现。
|
public int id
几何对象唯一标识符。
在 SuperMap 中,对应 SMID。
public Point2D[] points
组成几何对象的节点的二维坐标对数组。
1、几何对象从结构上可以分为简单几何对象和复杂几何对象。简单几何对象与复杂几何对象的区别:简单的几何对象一般为单一对象,而复杂的几何对象由多个简单对象组成或经过一定的空间运算之后产生,如:矩形为简单的区域对象,而中空的矩形为复杂的区域对象。
2、所有几何对象(点、线、面)都是由一些简单的点坐标组成的,该字段存放了组成几何对象的点坐标的数组。对于简单的面对象,它的起点和终点的坐标点相同。
3、对于复杂的几何对象,根据 parts
属性来确定每一个组成复杂几何对象的简单对象所对应的节点的个数,从而确定 point2Ds 字段中坐标对的分配归属问题。
4、对于点对象和文本对象而言,point2Ds[0] 代表坐标,其他的值无效。
public int[] parts
描述几何对象中各个子对象所包含的节点的个数。
1、几何对象从结构上可以分为简单几何对象和复杂几何对象。简单几何对象与复杂几何对象的区别:简单的几何对象一般为单一对象,而复杂的几何对象由多个简单对象组成或经过一定的空间运算之后产生,如:矩形为简单的区域对象,而中空的矩形为复杂的区域对象。
2、通常情况,一个简单几何对象的子对象就是它本身,因此对于简单对象来说的该字段为长度为1的整型数组,该字段的值就是这个简单对象节点的个数。如果一个几何对象是由几个简单对象组合而成的,例如,一个岛状几何对象由3个简单的多边形组成而成,那么这个岛状的几何对象的 Parts 字段值就是一个长度为3的整型数组,数组中每个成员的值分别代表这三个多边形所包含的节点个数。
public int[] partTopo
public GeometryType type
几何对象的类型。
public Style style
几何对象的风格。
几何对象风格是用于定义几何对象在显示时的符号、线型、填充模式等信息。
public PrjCoordSys prjCoordSys
几何对象的投影坐标系。
public Geometry()
构造函数。
public Geometry(Geometry geometry)
构造函数。
geometry
- Geometry 对象。java.lang.IllegalArgumentException
- 当 Geometry 对象为 Null 时抛出异常。public static Geometry fromPoint2Ds(Point2D[] points, GeometryType feature)
根据二维地理坐标点数组和指定的几何对象类型创建几何对象。
points
- 二维坐标点数组。feature
- 要创建的几何对象的类型,可以是点对象、线对象或多边形对象。java.lang.IllegalArgumentException
- 当二维坐标点数组为 Null 或者要要创建的几何对象的类型不合法时抛出异常。public static Geometry fromPoint2Ds(Point2D[] points, GeometryType type, int[] parts)
根据二维地理坐标点数组和指定的几何对象类型创建几何对象。
points
- 二维坐标点数组。type
- 要创建的几何对象的类型,可以是点对象、线对象或多边形对象。parts
- 几何对象中各个子对象所包含的节点的个数。public static Geometry fromPoint2D(Point2D point2D)
根据一个二维地理坐标点创建一个几何点对象。
point2D
- 二维坐标点。public static boolean isPointInPolygon(Point2D point, Geometry polygon)
判断点与多边形的位置关系。
point
- 二维点坐标。polygon
- 多边形对象,Geometry 类型。返回 true,表示点在多边形内部或者边线上;否则返回 false。
如果点恰好位于多边形边线上,也认为是在多边形内部。
public static boolean isGeometryCAD(Geometry geometry)
geometry
- 待判断的Geometry对象public static Geometry fromRect2D(Rectangle2D rect2D)
根据一个二维地理矩形创建一个几何多边形对象。
rect2D
- 二维矩形对象。返回的几何多边形对象有5个坐标点,其中最后一个点和第一个点的位置相同。
public Rectangle2D getBounds()
获取几何对象的最小外接矩形。
点对象的最小外接矩形退化为一个点,即矩形的左边界坐标值等于其右边界坐标值,上边界坐标值等于其下边界的坐标值,分别为该点的 x 坐标和 y 坐标。
只支持点、线、多边形、圆等类型。每次获取本字段的值时,都会重新计算一次。所以,如果要频繁使用本值,请将本值设置给一个临时变量。
当点几何对象为 Null 时抛出异常。
public Point2D getCenter()
获取几何对象中心点。
只支持点、线、多边形、圆等类型。
每次获取本属性的值时,都会重新计算一次。所以,如果要频繁使用本值,请将本值设置给一个临时变量。
public void setCenter(Point2D point2D)
设置中心点,目前该方法未实现。
point2D
- 中心点位置public boolean equals(java.lang.Object obj)
比较指定对象与当前 Geometry 对象是否相等。
equals
在类中 java.lang.Object
obj
- 与当前 Geometry 对象进行比较的对象。public static boolean equals(Geometry geo1, Geometry geo2, double precision)
根据指定的对比精度,判断两个几何对象是否相等。
geo1
- 几何对象1。geo2
- 几何对象2。precision
- 指定的对比精度。public int hashCode()
获取哈希码。
hashCode
在类中 java.lang.Object