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> 三角形三个顶点
Returns:
module:geom~Triangle -
atApproximatePoint(coord) → {Boolean}
-
检测一个坐标是否在该三角形的边界范围以内。
Parameters:
Name Type Description coord
module:basetype~Coordinate 坐标
Returns:
Boolean -范围内返回true;范围外返回false。
-
clone() → {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}
-
获取三角形几何对象的三维包围盒。
-
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":不包含原有几何对象。
-
getCentroid() → {module:basetype~Coordinate}
-
计算三角形的质心
Example
let result = triangle.getCentroid();
-
getClosestPoint(coord) → {module:geom~Point}
-
在构成几何对象的所有结点中,计算与传入坐标最近的一个节点。如果几何对象的节点与传入坐标距离均相同,则返回几何对象的第一个节点。
Parameters:
Name Type Description coord
module:basetype~Coordinate 坐标
-
getCoordSeq() → {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>}
-
获取控制点的几何数组
Example
let points = geom.getCtrlPoints();
-
getExtent() → {module:basetype~Extent}
-
获取几何对象地理范围
Returns:
module:basetype~Extent -
getInCenter() → {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轴偏移量
-
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 围绕该中心点旋转三角形。该参数不传时,绕传入的坐标轴旋转
-
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传入但类型错误时,抛出类型错误异常
-
simplify(tolerance) → {module:geom~Triangle}
-
简化几何对象。三角形的简化返回原对象。
Parameters:
Name Type Description tolerance
Number 容差值,不小于0的数字
-
toPolygon() → {module:geom~Polygon}
-
转换成多边形几何对象,其中组成多边形的点的顺序是构造三角形时传入的点的顺序。
-
transform(source, destination) → {module:geom~Triangle}
-
将一个三角形几何对象中点所对应的地理坐标从源坐标系转换到目标坐标系。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,可以使用clone方法复制为副本。
Parameters:
Name Type Description source
Number 源坐标系,考虑到实际转换时,数据量可能较大,故传入CRS的SRID,而非CRS实例,以减少CRS实例数量,进而降低内存成本
destination
Number 目标坐标系
Example
... let triangle = new hmap.geom.Triangle(coordinate0, coordinate1, coordinate2); triangle.transform(3857, 4326);