Class: ViewShed3D

ViewShed3D

new ViewShed3D(scene)

可视域分析,设置观察点、目标的位置,水平、垂直视角范围,建立可视区域分析并在指定的场景中显示分析结果。

Name Type Description
scene Scene

场景对象。

Demo:
Throws:

scene are required.

Type
DeveloperError
Example
//创建可视域分析
var viewShed3D= new SuperMap3D.ViewShed3D(scene);

Members

directionnumber

获取或设置当前相机的方向与正北方向的夹角[0-360],单位:度。

Default Value:
0.0

distancenumber

获取或设置可视距离,单位:米。

Default Value:
200.0

hiddenAreaColorColor

获取或设置不可见区域的颜色。

Default Value:
SuperMap3D.Color(1.0, 0.0, 0.0, 0.5)

hintLineColorColor

获取或设置可视域分析的提示线颜色。

Default Value:
SuperMap3D.Color(1.0,1.0,1.0,1.0)

horizontalFovnumber

获取或设置可视域分析的水平视角范围[0-360],单位:度。

Default Value:
90.0

isShowLineboolean

获取或设置可视域体轮廓线是否显示

Default Value:
true

namestring

获取或设置可视域名称。

pitchnumber

获取或设置当前分析的相机俯仰角范围[-90,90]。 注意:该俯仰角指当相机方向与地面平行的时候是0度,与相机本身参数俯仰不一样。

Default Value:
0.0

verticalFovnumber

获取或设置可视域分析垂直视角范围[0-180],单位:度。

Default Value:
60.0

viewPositionArray.<number>

获取或设置观察点的位置。位置由经度、纬度和高程组成的数组表示。

Default Value:
[0, 0, 0]

visibleAreaColorColor

获取或设置可见区域的颜色。

Default Value:
SuperMap3D.Color(0.0, 1.0, 0.0, 0.5)

Methods

addClipRegion(){boolean}

添加裁剪区域。

Name Type Description
options.name string

裁剪区域的名称。

options.position Array.<number>

裁剪区域。

Returns:
Type Description
boolean result 裁剪区域是否添加成功。
Example
let positions = [102, 24, 10, 103, 24, 10];
  viewshed3D.addClipRegion({name: 'test', position: positions});

build()

创建可视域分析。

clear()

清除可视域分析结果。

destroy()

销毁对象

getViewshedParameter(){Object}

获取可视域闭合体的构建参数。 注:iServer返回的geomodel对象,如果data.geometry.suffix === [4,0,0,0]则为S3M模型,否则为S3MB模型,须在添加模型的接口传入isS3MB参数

Returns:
Name Type Description
result Object 返回可视/不可视闭合体的构建参数,包括视点、障碍点行列阵列及半径。
Name Type Description
result.viewPosition Point3D
distance number 可视域距离

getVisibleInViewport(index){boolean}

获得可视域分析在对应视口的可见性。

Name Type Description
index number

指定的视口索引。

Throws:

索引值的范围为:0-8。

Type
DeveloperError
Returns:
Type Description
boolean 可见性。

isDestroyed(){boolean}

对象是否被销毁

Returns:
Type Description
boolean result

removeAllClipRegion()

移除所有裁剪区域

removeClipRegion(name){boolean}

移除裁剪区域。

Name Type Description
name string

区域名称。

Returns:
Type Description
boolean result 是否删除成功。

setClipMode()

设置裁剪模式

Example
viewshed3D.setClipMode(SuperMap3D.ClippingType.KeepOutside);

setDistDirByPoint(position)

通过点(经度,纬度,高度)设置方向。

Name Type Description
position Array

位置。

Throws:

位置是[经度,纬度,高度] 并且不等于viewPosition。

Type
DeveloperError

setVisibleInViewport(index)

设置可视域分析在对应视口的可见性。

Name Type Description
index number

指定的视口索引。

Throws:

索引值的范围为:0-8。

Type
DeveloperError