PointPrimitive

new SuperMap3D.PointPrimitive()

三维场景中的图形点,使用 PointPrimitiveCollection 创建和渲染。通过调用 PointPrimitiveCollection#add 可以创建一个点并设置其初始属性。
Performance:

读取一个属性,例如PointPrimitive#show 是恒定时间。 为属性赋值的时间不变,但在调用 PointPrimitiveCollection#update 时会产生 CPU 到 GPU 的流量。 无论有多少属性被更新,每个点的流量都是一样的。 如果需要更新集合中的大部分点原型,使用 PointPrimitiveCollection#removeAll 清除集合并添加新的点原型,而不是逐个修改,可能会更有效率。

Throws:
  • DeveloperError : scaleByDistance.far 必须大于 scaleByDistance.near
  • DeveloperError : translucencyByDistance.far 必须大于 translucencyByDistance.near
  • DeveloperError : distanceDisplayCondition.far 必须大于 distanceDisplayCondition.near
See:

Members

color : Color

获取或设置点的内部颜色。如例 1 所示,红色、绿色、蓝色和alpha分别由值的value's red, green, blue, and alpha 表示。 这些分量的范围从 0.0(无强度)到 1.0(全强度)。
Examples:
// Example 1. Assign yellow.
p.color = SuperMap3D.Color.YELLOW;
// Example 2. Make a pointPrimitive 50% translucent.
p.color = new SuperMap3D.Color(1.0, 1.0, 1.0, 0.5);

disableDepthTestDistance : Number

获取或设置与相机的距离,在该距离上要禁用深度测试,以防止对地形的剪切。 当设置为0时,始终应用深度测试。 当设置为Number时。POSITIVE_INFINITY,深度测试从未应用。
Default Value: 0.0

distanceDisplayCondition : DistanceDisplayCondition

获取或设置条件,指定在距离相机多远的位置显示此点。
Default Value: undefined

id : Object

获取或设置选定点时返回的用户定义对象。

outlineColor : Color

获取或设置点的轮廓颜色。

outlineWidth : Number

以像素为单位获取或设置轮廓宽度。此宽度与像素大小相加,增加点的总大小。

pixelSize : Number

以像素为单位获取或设置点的内部尺寸。

position : Cartesian3

获取或设置该点的Cartesian位置。

scaleByDistance : NearFarScalar

根据点与相机的距离获取或设置点的远近缩放属性。 当相机距离在指定的 NearFarScalar#nearValueNearFarScalar#farValue 的上下限范围内时,点的缩放比例将在 NearFarScalar#nearValueNearFarScalar#farValue 之间插值。 超出这些范围时,点的缩放比例将被箝制在最近的范围内。 该缩放比例会乘以像素大小和轮廓宽度,从而影响点的总大小。 如果未定义,scaleByDistance(按距离缩放)将被禁用。
Examples:
// Example 1.
// Set a pointPrimitive's scaleByDistance to scale to 15 when the
// camera is 1500 meters from the pointPrimitive and disappear as
// the camera distance approaches 8.0e6 meters.
p.scaleByDistance = new SuperMap3D.NearFarScalar(1.5e2, 15, 8.0e6, 0.0);
// Example 2.
// disable scaling by distance
p.scaleByDistance = undefined;

show : Boolean

确定是否显示该点。用它来隐藏或显示一个点,而不是将其删除并重新添加到集合中。

translucencyByDistance : NearFarScalar

根据点与相机的距离,获取或设置点的远近半透明属性。 当相机距离在指定的NearFarScalar#nearValueNearFarScalar#farValue 上下限范围内时,点的半透明度将在NearFarScalar#nearValueNearFarScalar#farValue 之间插值。 在这两个范围之外,点的半透明度将保持在最近的范围内。 如果未定义,translucencyByDistance 将被禁用。
Examples:
// Example 1.
// Set a point's translucency to 1.0 when the
// camera is 1500 meters from the point and disappear as
// the camera distance approaches 8.0e6 meters.
p.translucencyByDistance = new SuperMap3D.NearFarScalar(1.5e2, 1.0, 8.0e6, 0.0);
// Example 2.
// disable translucency by distance
p.translucencyByDistance = undefined;

Methods

computeScreenSpacePosition(scene, result)Cartesian2

计算点原点的屏幕空间位置。 屏幕空间原点位于画布的左上角;x从左到右递增,y从上到下递增。
Name Type Description
scene Scene 场景。
result Cartesian2 optional 存储结果的对象。
Returns:
点的屏幕空间位置。
Throws:
Example:
console.log(p.computeScreenSpacePosition(scene).toString());

equals(other)Boolean

确定此点是否等于另一点。如果点的所有属性都相等,它们就是相等的。不同集合中的点可以相等。
Name Type Description
other PointPrimitive 用于比较等式的点。
Returns:
如果点相等,则为 true;否则为 false。