用于生成实心墙体几何体,通过一系列垂直拉伸的点构建三维立体结构,适用于建筑体量模型、地形围栏等场景
墙体由一系列点定义,这些点垂直向下拉伸至地面。
此外,可选择将其进一步向下拉伸至指定高度(例如自定义基底或限制最大/最小延伸范围)。
Name | Type | Default | Description |
---|---|---|---|
options.positions |
Array.<Cartesian3> | Cartesian对象数组,即墙体的点。 | |
options.granularity |
Number |
Math.RADIANS_PER_DEGREE
|
optional 每个经纬度之间的距离(以弧度为单位)。确定buffer中的位置数。 |
options.maximumHeights |
Array.<Number> | optional 一个与位置平行的数组,它给出了墙体在各个位置的最大高度。如果未定义,则使用每个位置的高度。 | |
options.minimumHeights |
Array.<Number> | optional 一个与位置平行的数组,它给出了墙体在各个位置的最小高度。如果未定义,则每个位置的高度为 0.0。 | |
options.ellipsoid |
Ellipsoid |
Ellipsoid.WGS84
|
optional |
options.vertexFormat |
VertexFormat |
VertexFormat.DEFAULT
|
optional 要计算的顶点属性。 |
Throws:
-
DeveloperError : positions 长度必须大于或等于 2。
-
DeveloperError : positions 和 maximumHeights 的长度必须相同。
-
DeveloperError : positions 和 minimumHeights 的长度必须相同。
- WallGeometry#createGeometry
- WallGeometry#fromConstantHeight
Example:
// create a wall that spans from ground level to 10000 meters
var wall = new SuperMap3D.WallGeometry({
positions : SuperMap3D.Cartesian3.fromDegreesArrayHeights([
19.0, 47.0, 10000.0,
19.0, 48.0, 10000.0,
20.0, 48.0, 10000.0,
20.0, 47.0, 10000.0,
19.0, 47.0, 10000.0
])
});
var geometry = SuperMap3D.WallGeometry.createGeometry(wall);
See:
Members
-
用于将对象打包到数组中的元素个数。
Methods
-
staticSuperMap3D.WallGeometry.createGeometry(wallGeometry) → Geometry|undefined
-
计算墙体的几何表示,包括其顶点、索引和包围球。
Name Type Description wallGeometry
WallGeometry 对墙体的描述。 Returns:
计算出的顶点和索引。 -
staticSuperMap3D.WallGeometry.fromConstantHeights() → WallGeometry
-
墙体由一系列坐标点定义,这些点默认垂直向下拉伸至地面,形成连续的立体结构。 此外,可通过参数设置将每个点向下拉伸至自定义高度(如限制基底深度或动态调整延伸范围)。
Name Type Default Description options.positions
Array.<Cartesian3> Cartesian对象数组,即墙体的点。 options.maximumHeight
Number optional 一个常量,用于定义墙体在各个位置的最大高度。如果未定义,则使用每个位置的高度。 options.minimumHeight
Number optional options.ellipsoid
Ellipsoid Ellipsoid.WGS84
optional 用于坐标运算的椭球体 options.vertexFormat
VertexFormat VertexFormat.DEFAULT
optional 计算的顶点属性。 Returns:
- WallGeometry#createGeometry
Example:
// create a wall that spans from 10000 meters to 20000 meters var wall = SuperMap3D.WallGeometry.fromConstantHeights({ positions : SuperMap3D.Cartesian3.fromDegreesArray([ 19.0, 47.0, 19.0, 48.0, 20.0, 48.0, 20.0, 47.0, 19.0, 47.0, ]), minimumHeight : 20000.0, maximumHeight : 10000.0 }); var geometry = SuperMap3D.WallGeometry.createGeometry(wall);
See:
-
将提供的实例存储到提供的数组中。
Name Type Default Description value
WallGeometry 打包的值。 array
Array.<Number> 要装入的数组。 startingIndex
Number 0
optional 开始打包元素的数组索引。 Returns:
The array that was packed into -
staticSuperMap3D.WallGeometry.unpack(array, startingIndex, result) → WallGeometry
-
从打包数组中读取实例。
Name Type Default Description array
Array.<Number> 打包的数组。 startingIndex
Number 0
optional 要解压缩的元素的起始索引。 result
WallGeometry optional 存储结果的对象。 Returns:
修改后的结果参数,或一个新的 WallGeometry 实例(如果没有提供)。