Summary
Methods:
| applyTransform |
给定一个函数,用来修改几何对象的坐标值。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,需要事先使用clone方法复制为副本。 |
| atApproximatePoint |
检测一个坐标是否在几何对象的边界范围以内。 本计算基于边界盒与坐标的相交运算,不包含高程方向的运算,一般用于近似相交判断。注意:与边界盒相交的坐标不一定在几何对象内,可能会在几何对象的边缘以外附近。 |
| clone |
复制一个点几何对象对象。 |
| copyTo |
复制当前几何对象对象,将得到的几何对象对象的地理范围中心变成传参的coordinate。不改变原来的geometry对象。 |
| destroy |
销毁对象。 |
| distanceTo |
计算两个地理几何对象之间的距离(X-Y平面内)。 |
| equals |
检测两个点几何对象的坐标是否相等。 |
| getBBox |
计算点几何对象的三维包围盒。 |
| getBuffer |
计算点几何对象的缓冲区域。即:以点为圆心,缓冲距离为半径构成的一个圆区域,作为点几何对象的缓冲区域。 |
| getCentroid |
获取点对象的质心。 |
| getCoordinate |
获取构成点几何对象对象的地理坐标。 |
| getExtent |
计算点几何对象的地理范围。该地理范围界定了X-Y平面的边界,不含高程信息。 |
| getType |
获取几何对象类型。 |
| intersectsExtent |
检测几何对象与地理范围是否相交。 |
| intersectsGeometry |
检测与另一个几何对象是否相交。 |
| isSelfIntersects |
(暂未启用)自相交判断。 |
| moveByDelta |
沿坐标轴正方向,将几何对象的所有坐标按给定的参数偏移。如果参数为负,则向坐标轴负向偏移。该方法可能改变原几何对象的位置,如果需要保留原几何对象,可以使用clone方法复制为副本。 |
| rotate |
绕着指定直线(旋转轴)旋转,所指定的直线穿过给定点且平行于坐标轴。旋转后的坐标可能发生变化。绕轴旋转的本质如下: 绕平行于Z轴的直线旋转即是在XY平面内旋转;绕平行于X轴的直线旋转即是在YZ平面内旋转;绕平行于Y轴的直线旋转即是在XZ平面内旋转 |
| scale |
按各坐标轴的缩放比例和指定的缩放原点进行缩放几何对象。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,可以使用clone方法复制为副本。 |
| setCoordinate |
重新设置点几何对象的坐标。 |
| transform |
将点几何对象中点所对应的地理坐标从源坐标系转换到目标坐标系。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,可以使用clone方法复制为副本。 |
Constructor
new Point(coord)
构造一个点几何对象对象。
Parameters:
| Name | Type | Description |
|---|---|---|
coord |
module:basetype~Coordinate | 地理坐标 |
Example
let coord = new hmap.basetype.Coordinate(120,30,0);
let point = new hmap.geom.Point(coord);
Methods
-
applyTransform(callback)
-
给定一个函数,用来修改几何对象的坐标值。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,需要事先使用clone方法复制为副本。
Parameters:
Name Type Description callbackfunction 用于处理坐标值的回调函数,回调函数的参数为坐标对象,该回调函数会作用在几何对象的每个坐标上
-
atApproximatePoint(coord) → {Boolean}
-
检测一个坐标是否在几何对象的边界范围以内。 本计算基于边界盒与坐标的相交运算,不包含高程方向的运算,一般用于近似相交判断。注意:与边界盒相交的坐标不一定在几何对象内,可能会在几何对象的边缘以外附近。
边界盒:即几何对象的地理范围构成的多边形区域。Parameters:
Name Type Description coordmodule:basetype~Coordinate 地理坐标
Returns:
Boolean -返回true表示在几何对象的边界盒范围以内;返回false表示不在几何对象的边界盒范围以内
-
clone() → {module:geom~Point}
-
复制一个点几何对象对象。
-
copyTo(coordinate) → {module:geom~Geometry}
-
复制当前几何对象对象,将得到的几何对象对象的地理范围中心变成传参的coordinate。不改变原来的geometry对象。
Parameters:
Name Type Description coordinatemodule:basetype~Coordinate 地理坐标
-
destroy()
-
销毁对象。
Example
let coord = new hmap.basetype.Coordinate(120,30,0); let point = new hmap.geom.Point(coord); point.destroy(); -
distanceTo(geometry, options) → {Number|Object}
-
计算两个地理几何对象之间的距离(X-Y平面内)。
Parameters:
Name Type Description geometrymodule:geom~Geometry 地理几何对象,继承module:geom~Geometry的任意几何对象
optionsObject 距离计算时的可选配置项
Name Type Description detailsBoolean 指定返回结果的格式,默认为false
若为true,则返回一个对象:{"distance":xxx,"x0":xxx,"y0":xxx,"x1":xxx,"y1":xxx}。其中 distance 表示几何对象到目标几何对象的距离;x0 和 y0 属性表示当前几何对象上最靠近目标几何对象的坐标;x1 和 y1 表示目标几何上最靠近当前几何对象的坐标。
但当edge为false且两个几何对象相交,则计算距离的详细交点信息的:x0,y0,x1,y1 无参考意义!
若为false,则返回几何对象到目标几何对象的距离值,距离的单位与几何对象的坐标相同。edgeBoolean 是否计算一个几何图形到目标几何图形边缘的最近距离,默认为true。 如果为true,一个几何图形完全包含在目标几何图形中时,计算距离为负数;如果为false,两个几何图形相交情况下 计算距离为0
Returns:
Number | Object -两个几何之间的距离。details为true 返回Object 否则返回 Number
Example
let coord1 = new hmap.basetype.Coordinate(120,30,0); let point1 = new hmap.geom.Point(coord1); let coord2 = new hmap.basetype.Coordinate(140,30,0); let center = new hmap.geom.Point(coord2); let circle = new hmap.geom.Circle(center,10); let result = point1.distanceTo(circle);//result=10 -
equals(point) → {Boolean}
-
检测两个点几何对象的坐标是否相等。
Parameters:
Name Type Description pointmodule:geom~Point 一个点几何对象对象
Returns:
Boolean -返回true表示相等;返回false表示不相等
Example
let coord = new hmap.basetype.Coordinate(120,30,0); let point1 = new hmap.geom.Point(coord); let point2 = new hmap.geom.Point(coord); let result = point1.equals(point2); -
getBBox() → {module:basetype~BBox}
-
计算点几何对象的三维包围盒。
-
getBuffer(dist) → {module:geom~Circle}
-
计算点几何对象的缓冲区域。即:以点为圆心,缓冲距离为半径构成的一个圆区域,作为点几何对象的缓冲区域。
Parameters:
Name Type Description distNumber 缓冲距离,大于0。单位和地图单位相同
Example
point.getBuffer(0.01); -
getCentroid() → {module:basetype~Coordinate}
-
获取点对象的质心。
Example
let coord = new hmap.basetype.Coordinate(120,30,0); let point = new hmap.geom.Point(coord); let result = point.getCentroid(); -
getCoordinate() → {module:basetype~Coordinate}
-
获取构成点几何对象对象的地理坐标。
-
getExtent() → {module:basetype~Extent}
-
计算点几何对象的地理范围。该地理范围界定了X-Y平面的边界,不含高程信息。
-
getType() → {String}
-
获取几何对象类型。
Returns:
String -返回几何对象类型
-
intersectsExtent(extent) → {Boolean}
-
检测几何对象与地理范围是否相交。
Parameters:
Name Type Description extentmodule:basetype~Extent 地理范围
Returns:
Boolean -为true时表示相交,为false时表示不相交
-
intersectsGeometry(geom) → {Boolean}
-
检测与另一个几何对象是否相交。
Parameters:
Name Type Description geommodule:geom~Geometry 另一个几何对象
Returns:
Boolean -返回true表示相交;返回false表示不相交
-
isSelfIntersects() → {Boolean}
-
(暂未启用)自相交判断。
Returns:
Boolean -true表示相交,false表示不相交
-
moveByDelta(deltaX, deltaY, deltaZ) → {module:geom~Point}
-
沿坐标轴正方向,将几何对象的所有坐标按给定的参数偏移。如果参数为负,则向坐标轴负向偏移。该方法可能改变原几何对象的位置,如果需要保留原几何对象,可以使用clone方法复制为副本。
Parameters:
Name Type Description deltaXNumber X坐标轴方向的平移量
deltaYNumber Y坐标轴方向的平移量
deltaZNumber Z坐标轴方向的平移量
Example
let coord = new hmap.basetype.Coordinate(120,30,0); let point = new hmap.geom.Point(coord); let result = point.moveByDelta(2,3,0);//result=new hmap.geom.Point(new hmap.basetype.Coordinate(122,33,0)) -
rotate(axis, angle, center) → {module:geom~Point}
-
绕着指定直线(旋转轴)旋转,所指定的直线穿过给定点且平行于坐标轴。旋转后的坐标可能发生变化。绕轴旋转的本质如下: 绕平行于Z轴的直线旋转即是在XY平面内旋转;绕平行于X轴的直线旋转即是在YZ平面内旋转;绕平行于Y轴的直线旋转即是在XZ平面内旋转
Parameters:
Name Type Description axisString 坐标轴,旋转轴平行于该坐标轴并与坐标轴同向。可选值为"X","Y","Z"
angleNumber 旋转的角度,超过360度时,取angle/360的余数。逆时针为正,顺时针为负
centermodule:basetype~Coordinate 旋转轴所穿过的点,可选项。该参数为空时,绕坐标轴旋转
-
scale(xFactor, yFactor, zFactor, origin) → {module:geom~Point}
-
按各坐标轴的缩放比例和指定的缩放原点进行缩放几何对象。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,可以使用clone方法复制为副本。
Parameters:
Name Type Default Description xFactorNumber X坐标值缩放比例,必须大于0
yFactorNumber Y坐标值缩放比例,必须大于0
zFactorNumber 1 Z坐标值缩放比例,在2D中默认为1。无法改变
originmodule:basetype~Coordinate 缩放原点,以该点为参考点进行缩放。默认以几何对象地理范围的中心点进行缩放。
Throws:
-
RangeError -
当xFactor, yFactor不为正时
-
TypeError -
origin类型错误时
-
-
setCoordinate(coord)
-
重新设置点几何对象的坐标。
Parameters:
Name Type Description coordmodule:basetype~Coordinate 地理坐标
Throws:
TypeError -当入参coord不是一个地理坐标时,抛出对象类型异常
Example
let coord = new hmap.basetype.Coordinate(120,30,0); let point = new hmap.geom.Point(coord); let coord2 = new hmap.basetype.Coordinate(12.5,31.0,0); point.setCoordinate(coord2); -
transform(source, destination) → {module:geom~Point}
-
将点几何对象中点所对应的地理坐标从源坐标系转换到目标坐标系。该方法可能改变原几何对象的坐标值,如果需要保留原几何对象,可以使用clone方法复制为副本。
Parameters:
Name Type Description sourceString 源坐标系,考虑到实际转换时,数据量可能较大,故传入CRS的SRID,而非CRS实例,以减少CRS实例数量,进而降低内存成本
destinationString 目标坐标系