com.supermap.data
类 GeoRegion

java.lang.Object
  继承者 com.supermap.data.Geometry
      继承者 com.supermap.data.GeoRegion

public class GeoRegion
extends Geometry

面几何对象类,派生于 Geometry 类。

该类用于描述面状地理实体,如行政区域,湖泊,居民地等,一般用一个或多个有序坐标点集合来表示。面几何对象由一个或多个部分组成,每个部分称为面几何对象的一个子对象,每个子对象用一个有序坐标点集合来表示,其起始点和终止点重合。可以对子对象进行添加,删除,修改等操作。


构造方法摘要
GeoRegion()
          构造一个新的 GeoRegion 对象。
GeoRegion(GeoRegion region)
          根据给定的 GeoRegion 对象构造一个与其完全相同的新对象。
GeoRegion(Point2Ds points)
          根据指定的参数来构造一个 GeoRegion 的新对象。
 
方法摘要
 int addPart(Point2Ds points)
          向此面几何对象追加一个子对象。
 GeoRegion clone()
          返回当前 GeoRegion 对象的一个拷贝。
 GeoLine convertToLine()
          将此面几何对象转换为线几何对象。
 void dispose()
          释放当前对象所占用的资源。
 double getArea()
          返回此面几何对象的面积。
 Point2Ds getPart(int index)
          返回此面几何对象中指定序号的子对象,以有序点集合的方式返回该子对象。
 int getPartCount()
          返回此面几何对象的子对象个数。
 int[] getPartTopo()
          判断面对象的子对象之间的岛洞关系。
 double getPerimeter()
          返回此面几何对象的周长,其值为各子对象周长之和。
 double getPreciseArea(PrjCoordSys prjCoordSys)
          精确计算投影参考系下多边形的面积。
 int indexOf(Point2Ds part)
          返回指定有序点集合所表示的子对象在此面几何对象中的序号。
 boolean insertPart(int index, Point2Ds points)
          往此面几何对象中的指定位置插入一个子对象。
 boolean isCounterClockwise(int index)
          判断面对象的子对象的走向。
 boolean isEmpty()
          返回此面几何对象是否为空,即其子对象个数是否为零。
 Geometry mirror(Point2D startPoint, Point2D endPoint)
          返回当前面几何对象关于指定线段对称的几何对象,即获取面几何对象的镜像。
 GeoRegion[] protectedDecompose()
          面对象保护性分解。
 boolean removePart(int index)
          删除此面几何对象中的指定序号的子对象。
 void setEmpty()
          清空面几何对象的空间数据。
 boolean setPart(int index, Point2Ds points)
          修改此面几何对象指定序号的子对象。
 
从类 com.supermap.data.Geometry 继承的方法
addCustomGeometryCreatedListener, fromXML, getBounds, getID, getInnerPoint, getStyle, getType, getVariantID, hitTest, offset, removeCustomGeometryCreatedListener, resize, rotate, setID, setStyle, toXML
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

GeoRegion

public GeoRegion()
构造一个新的 GeoRegion 对象。


GeoRegion

public GeoRegion(GeoRegion region)
根据给定的 GeoRegion 对象构造一个与其完全相同的新对象。

参数:
region - 指定的 GeoRegion 对象。

GeoRegion

public GeoRegion(Point2Ds points)
根据指定的参数来构造一个 GeoRegion 的新对象。

参数:
points - 用来创建面几何对象的有序点集合。
抛出:
java.lang.IllegalArgumentException - 如果有序点集合中的点的个数小于3。
方法详细信息

getArea

public double getArea()
返回此面几何对象的面积。 如果面几何对象有多个子对象时,面几何对象的面积为其多个子对象之和。

返回:
此面几何对象的面积。
另请参见:
getPerimeter()
默认值:
默认值为 0.0。

getPartCount

public int getPartCount()
返回此面几何对象的子对象个数。面几何对象清空后,其子对象的个数为0。

返回:
此面几何对象的子对象个数。
默认值:
默认值为 0.0。

getPerimeter

public double getPerimeter()
返回此面几何对象的周长,其值为各子对象周长之和。

返回:
此面几何对象的周长。
默认值:
默认值为 0.0。

isEmpty

public boolean isEmpty()
返回此面几何对象是否为空,即其子对象个数是否为零。判断精度为零值判断精度。关于零值判断精度的详细信息请参见 Environment 类。

覆盖:
Geometry 中的 isEmpty
返回:
如果对象为空,则返回 true;否则返回 false。
另请参见:
Geometry.offset(double, double)

setEmpty

public void setEmpty()
清空面几何对象的空间数据。即删除其所有子对象。

覆盖:
Geometry 中的 setEmpty

clone

public GeoRegion clone()
返回当前 GeoRegion 对象的一个拷贝。

覆盖:
java.lang.Object 中的 clone
返回:
通过克隆操作得到的 GeoRegion 对象。

dispose

public void dispose()
释放当前对象所占用的资源。调用该方法之后,此对象不再可用。

覆盖:
Geometry 中的 dispose

addPart

public int addPart(Point2Ds points)
向此面几何对象追加一个子对象。

参数:
points - 组成面子对象的有序点集合。
返回:
添加成功则返回新添加子对象序号,否则返回-1。
抛出:
java.lang.IllegalArgumentException - 如果有序点集合中的点的个数小于3。
另请参见:
insertPart(int,Point2Ds), removePart(int)

convertToLine

public GeoLine convertToLine()
将此面几何对象转换为线几何对象。成功返回线几何对象。

返回:
转换成功则返回新生成的线几何对象。

getPart

public Point2Ds getPart(int index)
返回此面几何对象中指定序号的子对象,以有序点集合的方式返回该子对象。

参数:
index - 子对象的序号。
返回:
组成子对象的有序点集合。
抛出:
java.lang.IndexOutOfBoundsException - 如果序号越界。
另请参见:
setPart(int,Point2Ds)

insertPart

public boolean insertPart(int index,
                          Point2Ds points)
往此面几何对象中的指定位置插入一个子对象。成功则返回 true,否则返回 false。插入有序点集合的副本,因此插入后对源有序点集合的修改不会影响面几何对象,如需修改面几何对象,请用 setPart() 方法。

参数:
index - 插入子对象的位置。
points - 组成要插入的子对象的有序点集合。
返回:
插入子对象成功返回 true,否则返回 false。
抛出:
java.lang.IllegalArgumentException - 如果有序点集合中的点的个数小于3。
java.lang.IndexOutOfBoundsException - 如果序号越界。
另请参见:
addPart(Point2Ds), removePart(int)

removePart

public boolean removePart(int index)
删除此面几何对象中的指定序号的子对象。

参数:
index - 被删除的子对象的序号。
返回:
删除成功返回 true,否则返回 false。
抛出:
java.lang.IndexOutOfBoundsException - 如果序号越界。
另请参见:
addPart(Point2Ds), insertPart(int,Point2Ds)

setPart

public boolean setPart(int index,
                       Point2Ds points)
修改此面几何对象指定序号的子对象。即用新的有序点集合来替换原子对象的有序点集合。

参数:
index - 被替换的子对象的序号。
points - 组成用以替换的面子对象的有序点的集合。
返回:
替换成功返回 true,否则返回 false。
抛出:
java.lang.IllegalArgumentException - 如果有序点集合中点的个数小于3。
java.lang.IndexOutOfBoundsException - 如果序号越界。
另请参见:
getPart(int)

indexOf

public int indexOf(Point2Ds part)
返回指定有序点集合所表示的子对象在此面几何对象中的序号。

参数:
part - 指定的有序点集合。
返回:
指定有序点集合所表示的子对象在此面几何对象中的序号,若该子对象不存在,则返回-1。

mirror

public Geometry mirror(Point2D startPoint,
                       Point2D endPoint)
返回当前面几何对象关于指定线段对称的几何对象,即获取面几何对象的镜像。

覆盖:
Geometry 中的 mirror
参数:
startPoint - 指定的线段的起点。
endPoint - 指定的线段的终点。
返回:
面几何对象的镜像。
另请参见:
Geometry.offset(double,double)

isCounterClockwise

public boolean isCounterClockwise(int index)
判断面对象的子对象的走向。

参数:
index - 指定的子对象的序号。
返回:
一个布尔值,表示指定子对象的走向。true 表示走向为逆时针,false 表示走向为顺时针。

protectedDecompose

public GeoRegion[] protectedDecompose()
面对象保护性分解。区别于组合对象将子对象进行简单分解,保护性分解将复杂的具有多层岛洞嵌套关系的面对象分解成只有一层嵌套关系的面对象。 面对象中有子对象部分交叠的情形不能保证分解的合理性。

返回:
保护性分解后的面对象数组。
从以下版本开始:
SuperMap iObject Java 7.1.0

getPreciseArea

public double getPreciseArea(PrjCoordSys prjCoordSys)
精确计算投影参考系下多边形的面积。

参数:
prjCoordSys - 指定的投影坐标系。
返回:
二维面几何对象的面积。

getPartTopo

public int[] getPartTopo()
判断面对象的子对象之间的岛洞关系。 岛洞关系数组是由 1 和 -1 两个数值组成,数组大小与面对象的子对象相同。其中, 1 表示子对象为岛, -1 表示子对象为洞。

返回:
岛洞关系数组