geom~Rectangle(points)

矩形

Summary

Methods:
applyTransform

给定一个函数,用来修改几何对象的坐标值。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,需要事先使用clone方法复制原几何对象作为副本

atApproximatePoint

判断一个坐标是否在当前矩形内,不包含高程方向的运算

clone

复制一个线对象。

destroy

销毁对象的全部属性

distanceTo

计算两个地理几何对象之间的距离(X-Y平面内)。

getBBox

获取矩形的三维包围盒。

getBuffer

获取几何对象的缓冲区。缓冲区限于X-Y平面(Z值为0)内,非三维空间中的缓冲区

getClosestPoint

从构成矩形的所有点中,获取离传入坐标最近的一个点。传入坐标到矩形各个点距离都相等时,返回矩形的第一个点。

getCoordSeqs

获取构成矩形的四个顶点

getCtrlPoints

获取控制点的几何数组

getExtent

获取二维包围盒

getType

获取几何对象类型。

intersectsExtent

检测几何对象与地理范围是否相交。

intersectsGeometry

检测与另一个几何对象是否相交。

isSelfIntersects

是否自相交

moveByDelta

对象移动

rotate

绕着指定直线(旋转轴)旋转,所指定的直线穿过给定点且平行于坐标轴。旋转后的坐标可能发生变化。绕轴旋转的本质如下: 绕平行于Z轴的直线旋转即是在XY平面内旋转;绕平行于X轴的直线旋转即是在YZ平面内旋转;绕平行于Y轴的直线旋转即是在XZ平面内旋转

scale

坐标缩放

simplify

简化几何对象。使用较少的坐标数量表示与原几何对象近似的几何对象,矩形的简化返回原对象。

toLine

将矩形转化为线几何。

toPolygon

将矩形转化为多边形。

transform

将一个矩形几何对象中点所对应的地理坐标从源坐标系转换到目标坐标系。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,可以使用clone方法复制为副本。

Constructor

new Rectangle(points)

使用点数组中前两个点的坐标,作为矩形对角线的坐标,构造矩形。

Parameters:
Name Type Description
points Array.<module:geom~Point>

元素为点对象的数组,长度至少为2(多于两个的取前两个)。

Example
let coord1 = new hmap.basetype.Coordinate(120,30,0);
let pnt1 = new hmap.geom.Point(coord1);
let coord2 = new hmap.basetype.Coordinate(121,31,0);
let pnt2 = new hmap.geom.Point(coord2);
let rectangle = new hmap.geom.Rectangle([pnt1,pnt2]);

Methods

applyTransform(callback)

给定一个函数,用来修改几何对象的坐标值。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,需要事先使用clone方法复制原几何对象作为副本

Parameters:
Name Type Description
callback

用于处理几何对象点对象的回调函数,回调函数的参数为点对象,该回调函数会作用在几何对象的每个点对象上

atApproximatePoint(coord) → {Boolean}

判断一个坐标是否在当前矩形内,不包含高程方向的运算

Parameters:
Name Type Description
coord module:basetype~Coordinate

坐标对象

Returns:
Boolean -

在矩形范围内返回true;在矩形范围外返回false

clone() → {module:geom~Rectangle}

复制一个线对象。

Returns:
module:geom~Rectangle -

矩形

destroy()

销毁对象的全部属性

distanceTo(geometry, options) → {Number|Object}

计算两个地理几何对象之间的距离(X-Y平面内)。

Parameters:
Name Type Description
geometry module:geom~Geometry

地理几何对象,继承module:geom~Geometry的任意几何对象

options Object

距离计算时的可选配置项

Name Type Description
details Boolean

指定返回结果的格式,默认为false
若为true,则返回一个对象:{"distance":xxx,"x0":xxx,"y0":xxx,"x1":xxx,"y1":xxx}。其中 distance 表示几何对象到目标几何对象的距离;x0 和 y0 属性表示当前几何对象上最靠近目标几何对象的坐标;x1 和 y1 表示目标几何上最靠近当前几何对象的坐标。
但当edge为false且两个几何对象相交,则计算距离的详细交点信息的:x0,y0,x1,y1 无参考意义!
若为false,则返回几何对象到目标几何对象的距离值,距离的单位跟当前地图的坐标系使用的长度单位保持一致。

edge Boolean

是否计算一个几何图形到目标几何图形边缘的最近距离,默认为true。 如果为true, 一个几何图形完全包含在目标几何图形中时,计算距离为负数;如果为false,两个几何图形相交情况下 计算距离为0。

Returns:
Number | Object -

两个几何之间的距离。details为true 返回Object 否则返回 Number

getBBox() → {module:basetype~BBox}

获取矩形的三维包围盒。

Returns:
module:basetype~BBox -

返回矩形的三维包围盒。

getBuffer(dist, sideType) → {module:geom~Polygon}

获取几何对象的缓冲区。缓冲区限于X-Y平面(Z值为0)内,非三维空间中的缓冲区

Parameters:
Name Type Default Description
dist Number

缓冲距离,一个正数,单位同地图单位,如果设置了module:initState~initState.linearUnit参数且与地图单位不一致时,将自动转换为地图单位。

sideType String FULL

面缓冲类型,"FULL":包含原几何对象,"OUTSIDE":不包含原有几何对象

Returns:
module:geom~Polygon -

返回一个面状几何对象

getClosestPoint(coord) → {module:geom~Point}

从构成矩形的所有点中,获取离传入坐标最近的一个点。传入坐标到矩形各个点距离都相等时,返回矩形的第一个点。

Parameters:
Name Type Description
coord module:basetype~Coordinate

一个地理坐标

Returns:
module:geom~Point -

矩形几何对象上的一个点

getCoordSeqs() → {Array.<module:basetype~CoordSeq>}

获取构成矩形的四个顶点

Returns:
Array.<module:basetype~CoordSeq> -

顶点坐标序列,,鉴于Rectangle坐标序列数组只有一个,可以通过getCoordSeq 直接返回该坐标序列对象

getCtrlPoints() → {Array.<module:geom~Point>}

获取控制点的几何数组

Returns:
Array.<module:geom~Point> -

点几何数组

Example
let points = geom.getCtrlPoints();

getExtent() → {module:basetype~Extent}

获取二维包围盒

Returns:
module:basetype~Extent -

在XY平面的最大地理范围

getType() → {String}

获取几何对象类型。

Returns:
String -

返回几何对象类型。

intersectsExtent(extent) → {Boolean}

检测几何对象与地理范围是否相交。

Parameters:
Name Type Description
extent module:basetype~Extent

地理范围

Returns:
Boolean -

为true时表示相交,为false时表示不相交

intersectsGeometry(geom) → {Boolean}

检测与另一个几何对象是否相交。

Parameters:
Name Type Description
geom module:geom~Geometry

另一个几何对象。

Returns:
Boolean -

返回true表示相交;返回false表示不相交。

isSelfIntersects() → {Boolean}

是否自相交

Returns:
Boolean -

false,矩形不会自相交。

moveByDelta(deltaX, deltaY, deltaZ) → {module:geom~Rectangle}

对象移动

Parameters:
Name Type Default Description
deltaX Number 0

在x轴方向的移动,单位同地图单位

deltaY Number 0

在y轴方向的移动,单位同地图单位

deltaZ Number 0

在z轴方向的移动,单位同地图单位

Returns:
module:geom~Rectangle -

返回移动后的矩形。

rotate(axis, angle, center) → {module:geom~Rectangle}

绕着指定直线(旋转轴)旋转,所指定的直线穿过给定点且平行于坐标轴。旋转后的坐标可能发生变化。绕轴旋转的本质如下: 绕平行于Z轴的直线旋转即是在XY平面内旋转;绕平行于X轴的直线旋转即是在YZ平面内旋转;绕平行于Y轴的直线旋转即是在XZ平面内旋转

Parameters:
Name Type Description
axis String

坐标轴,旋转轴平行于该坐标轴并与坐标轴同向。可选值为"X","Y","Z",默认值为Z

angle Number

旋转的角度,超过360度时,取angle/360的余数。逆时针为正,顺时针为负

center module:basetype~Coordinate

旋转轴所穿过的点,可选项。该参数为空时,绕坐标轴旋转

Returns:
module:geom~Rectangle -

返回旋转后的矩形

scale(scaleX, scaleY, scaleZ, coordinate) → {module:geom~Rectangle}

坐标缩放

Parameters:
Name Type Description
scaleX Number

在X轴方向的缩放

scaleY Number

在Y轴方向的缩放

scaleZ Number

在Z轴方向的缩放

coordinate module:basetype~Coordinate

锚点的坐标值,如果不传,以矩形中心点作为缩放中心点

Throws:
TypeError -

当coordinate传入但类型错误时,抛出类型错误异常

Returns:
module:geom~Rectangle -

返回缩放后的矩形

simplify(tolerance) → {module:geom~Rectangle}

简化几何对象。使用较少的坐标数量表示与原几何对象近似的几何对象,矩形的简化返回原对象。

Parameters:
Name Type Description
tolerance Number

简化所用容差值,大于等于0。

Returns:
module:geom~Rectangle -

返回简化后的几何对象。

toLine() → {module:geom~Line}

将矩形转化为线几何。

Returns:
module:geom~Line -

几何对象

Example
let rectangle = new hmap.geom.Rectangle([point1,point2]);
let polygon = rectangle.toLine();

toPolygon() → {module:geom~Polygon}

将矩形转化为多边形。

Returns:
module:geom~Polygon -

多边形

Example
let rectangle = new hmap.geom.Rectangle([point1,point2]);
let polygon = rectangle.toPolygon();

transform(source, destination) → {module:geom~Rectangle}

将一个矩形几何对象中点所对应的地理坐标从源坐标系转换到目标坐标系。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,可以使用clone方法复制为副本。

Parameters:
Name Type Description
source Number

源坐标系,考虑到实际转换时,数据量可能较大,故传入CRS的SRID,而非CRS实例,以减少CRS实例数量,进而降低内存成本

destination Number

目标坐标系

Returns:
module:geom~Rectangle -

坐标转换后的几何对象

Example
...
let rectangle = new hmap.geom.Rectangle(pts);
rectangle.transform(3857, 4326);