geom~Triangle(a, b, c)

三角形。由三个点构造。 如果三点共线,则构造失败,抛出异常。

Summary

Methods:
fromPoints

根据三角形三个顶点几何构建三角形几何

atApproximatePoint

检测一个坐标是否在该三角形的边界范围以内。

clone

复制一个几何对象

destroy

销毁对象中的全部属性

distanceTo

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

getArea

计算面积

getBBox

获取三角形几何对象的三维包围盒。

getBuffer

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

getCentroid

计算三角形的质心

getClosestPoint

在构成几何对象的所有结点中,计算与传入坐标最近的一个节点。如果几何对象的节点与传入坐标距离均相同,则返回几何对象的第一个节点。

getCoordSeq

提取几何对象坐标序列

getCoordSeqs

提取几何对象坐标序列的数组

getCtrlPoints

获取控制点的几何数组

getExtent

获取几何对象地理范围

getInCenter

获取三角形内切圆圆心,即三角形内心的坐标。

getLongestSideLength

计算最长边的长度

getType

获取当前几何对象类型

intersectsExtent

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

intersectsGeometry

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

isAcute

判断当前三角形是否是锐角三角形

isSelfIntersects

是否自相交

moveByDelta

沿坐标轴正方向,将几何对象的所有坐标按给定的参数偏移。

rotate

旋转坐标。旋转后,坐标值可能发生变化

scale

坐标缩放

simplify

简化几何对象。三角形的简化返回原对象。

toPolygon

转换成多边形几何对象,其中组成多边形的点的顺序是构造三角形时传入的点的顺序。

transform

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

Constructor

new Triangle(a, b, c)

三角形构造函数

Parameters:
Name Type Description
a module:basetype~Coordinate

第一个点的坐标

b module:basetype~Coordinate

第二个点的坐标

c module:basetype~Coordinate

第三个点的坐标

Example
let coord1 = new hmap.basetype.Coordinate(120,30,0);
let coord2 = new hmap.basetype.Coordinate(121,31,0);
let coord3 = new hmap.basetype.Coordinate(122,32,0);
let triangle = new hmap.geom.Triangle(coord1,coord2,coord3);

Methods

static fromPoints(points) → {module:geom~Triangle}

根据三角形三个顶点几何构建三角形几何

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

三角形三个顶点

atApproximatePoint(coord) → {Boolean}

检测一个坐标是否在该三角形的边界范围以内。

Parameters:
Name Type Description
coord module:basetype~Coordinate

坐标

Returns:
Boolean -

范围内返回true;范围外返回false。

clone() → {module:geom~Triangle}

复制一个几何对象

Returns:
module:geom~Triangle -

三角形对象

destroy()

销毁对象中的全部属性

Example
triangle.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

getArea() → {Number}

计算面积

Returns:
Number -

返回面积值,单位是坐标单位的平方

Example
let result = triangle.getArea();

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 -

返回缓冲区几何对象

getCentroid() → {module:basetype~Coordinate}

计算三角形的质心

Returns:
module:basetype~Coordinate -

返回质心坐标

Example
let result = triangle.getCentroid();

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

在构成几何对象的所有结点中,计算与传入坐标最近的一个节点。如果几何对象的节点与传入坐标距离均相同,则返回几何对象的第一个节点。

Parameters:
Name Type Description
coord module:basetype~Coordinate

坐标

Returns:
module:geom~Point -

三角形上的一个点

getCoordSeq() → {module:basetype~CoordSeq}

提取几何对象坐标序列

Returns:
module:basetype~CoordSeq -

返回坐标序

Example
let coordSeq = triangle.getCoordSeq();

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

提取几何对象坐标序列的数组

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

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

Example
let result = triangle.getCoordSeqs();

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

获取控制点的几何数组

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

点几何数组

Example
let points = geom.getCtrlPoints();

getExtent() → {module:basetype~Extent}

获取几何对象地理范围

getInCenter() → {module:basetype~Coordinate}

获取三角形内切圆圆心,即三角形内心的坐标。

Returns:
module:basetype~Coordinate -

返回三角形内心的坐标

getLongestSideLength() → {Number}

计算最长边的长度

Returns:
Number -

返回长度值

Example
let result = triangle.getLongestSideLength();

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:basetype~Geometry

另一个几何对象

Returns:
Boolean -

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

isAcute() → {Boolean}

判断当前三角形是否是锐角三角形

Returns:
Boolean -

锐角三角形返回true;不是锐角三角形返回false

Example
let result = triangle.isAcute();

isSelfIntersects() → {Boolean}

是否自相交

Returns:
Boolean -

false,三角形不会自相交

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

沿坐标轴正方向,将几何对象的所有坐标按给定的参数偏移。

Parameters:
Name Type Description
deltaX Number

X轴偏移量

deltaY Number

Y轴偏移量

deltaZ Number

Z轴偏移量

Returns:
module:geom~Triangle -

偏移之后的三角形对象

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

旋转坐标。旋转后,坐标值可能发生变化

Parameters:
Name Type Default Description
axis String Z

坐标轴,X、Y、Z之一

angle Number 0

旋转角度

center module:basetype~Coordinate

围绕该中心点旋转三角形。该参数不传时,绕传入的坐标轴旋转

Returns:
module:geom~Triangle -

旋转后的三角形

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

坐标缩放

Parameters:
Name Type Description
scaleX Number

在X轴方向的缩放,大于0的数值

scaleY Number

在Y轴方向的缩放,大于0的数值

scaleZ Number

在Z轴方向的缩放,大于0的数值

coordinate module:basetype~Coordinate

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

Throws:
TypeError -

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

Returns:
module:geom~Triangle -

返回缩放后的三角形

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

简化几何对象。三角形的简化返回原对象。

Parameters:
Name Type Description
tolerance Number

容差值,不小于0的数字

Returns:
module:geom~Triangle -

返回简化后的几何对象

toPolygon() → {module:geom~Polygon}

转换成多边形几何对象,其中组成多边形的点的顺序是构造三角形时传入的点的顺序。

Returns:
module:geom~Polygon -

多边形对象

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

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

Parameters:
Name Type Description
source Number

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

destination Number

目标坐标系

Returns:
module:geom~Triangle -

坐标转换后的几何对象

Example
...
let triangle = new hmap.geom.Triangle(coordinate0, coordinate1, coordinate2);
triangle.transform(3857, 4326);