SuperMap iClient3D for Plugin 技术文档
三维空间分析  

3     可视域分析

3.1     概述

可视域分析是基于给定的观察点和观察范围,以一定的相对高度查找设定范围内可见覆盖的区域,并显示给定点的可见区域范围。SuperMap iClient3D for Plugin提供了可视域分析功能(ViewShed3D),可指定一个观察点,查看此观察点范围内的可视效果;也可指定一条路径,查看此路径的实时动态可视效果。

可视域分析在观光浏览道路选择、森林防火瞭望塔布设、航海导航、航空以及军事方面有重要的应用价值。

3.2     主要接口

SuperMap iClient3D for Plugin中可视域分析类为ViewShed3D类,其方法及属性见下表:

3.1 ViewShed3D类方法列表

返回类型

名称

描述

void

build

执行分析,得出分析结果。 

void

clear

清除分析结果。

void

setDistDirByPoint

计算观察点到目标点的距离和方向。 

void

setTargetPoint

设置目标点。

3.2 ViewShed3D类属性列表

返回类型

名称

描述

Number

direction

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

Number

distance

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

Color

hiddenAreaColor

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

Color

hintLineColor

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

Number

horizontalFov

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

Number

pitch

获取或设置当前分析的相机俯仰角。

AnalysisQuality

quality

获取或设置分析的质量级别,有高、低、中等三个级别。

Number

verticalFov

获取或设置可视域分析垂直视角范围。单位:度 。

Point3D

viewerPosition

获取或设置观察点的位置。

Color

visibleAreaColor

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

 

3.3     主要代码

实现可视域分析的主要代码如下:

    //获取节点动画的空间位置,将作为可视域分析的观察点

    var point3D = nodeAnmination.get_position();

    point3D = new SuperMap.Web.Core.Point3D(point3D.x, point3D.y, (point3D.z + 2));

    //获取节点动画的前进方向,将作为可视域分析的前进方向

    var direction = nodeAnmination.get_direction();

    //设置可视域分析观察点

    viewShed3d.set_viewerPosition(point3D);

    //设置可视域分析的前进方向(相机与正北方向的夹角)

    viewShed3d.set_direction(direction);

    //设置可是距离

    viewShed3d.set_distance(100);

    //设置可视域分析的水平视角范围

    viewShed3d.set_horizontalFov(90);

    //设置可视域分析的垂直视角范围

    viewShed3d.set_verticalFov(60);

    //执行分析

    viewShed3d.build();

 

可视域分析的实现效果如下图:

31 可视域分析效果


  版权所有©2000-2016 北京超图软件股份有限公司。保留所有权利。