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

2     通视分析

2.1     概述

通视分析是三维GIS中常用的分析功能,指以某一点为观察点,其余点为目标点,计算观察点与目标点之间的通视性,沿着这些点之间的视线确定可见性,利用不同颜色显示策略来分析观察点到目标点是否被障碍物阻挡,并在障碍物处获取障碍点,分析结果一目了然。

SuperMap iClient3D for Plugin提供了通视分析功能(Slightline),需要用户指定观察点和目标点,分析的结果保存在SightlineResult对象中,包含了障碍点、观察点、目标点、两点间是否可见的信息。通视分析示意图如下:

说明: E:\文档编写工作\00技术文档\客户端\visible_2.png

21 观察点到目标点可见

说明: E:\文档编写工作\00技术文档\客户端\visible_4.png

22 观察点到目标点被障碍遮挡

通视分析广泛应用于建筑物视线遮挡判断,监控覆盖率、通讯信号覆盖、军事设施布设、军事火力覆盖等多方面。

2.2     主要接口

SuperMap iClient3D for PluginSlightline类提供了通视分析的多种属性和方法,Slightline类的方法及属性见下表:

2.1 Slightline类方法列表

返回类型

名称

描述

Number

addTargetPoint

添加目标点。

void

build

执行视线分析。

void

clear

清除分析结果。

Point3D

getTargetPoint

根据指定索引号,返回指定的目标点对象。

SightlineResult

getVisibleResult

返回指定索引通视线的分析结果。

void

removeAllTargetPoints

移除所有的目标点。

void

removeTargetPoint

移除指定索引位置的目标点对象。

void

setTargetPoint

在指定的索引位置,添加目标点。

 

2.2 Slightline类属性列表

返回类型

名称

描述

Color

hiddenColor

获取或设置通视分析的不可见线颜色。

Number

targetPointCount

获取视线分析中目标点的个数。

Point3D

viewerPosition

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

Color

visibleColor

获取或者设通视分析的可见线颜色。

 

SightlineResult类用于存放通视分析的结果。SightlineResult类的属性如下表所示:

2.3 SightlineResult类属性列表

类型

名称

描述

Point3D

barrierPoint

获取通视分析的障碍点。

Boolean

isVisible

获取通视分析结果是否可视,即观察点与目标点间的可视性。

Point3D

targetPoint

获取通视分析的目标点。

Point3D

viewerPosition

获取通视分析的观察点。

 

2.3     主要代码

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

   Sightline=new  SuperMap.Web.Realspace.Sightline();

   //将第一个点设置为观察点

    Sightline.set_viewerPosition(firstpoint);

    var pointlength=otherpoints.length;

    for(i=0;i <pointlength;i++){

      var otherpoint=otherpoints[i];

      //依次添加目标点

         Sightline.addTargetPoint(otherpoint);

  }

    //执行通视分析

    Sightline.build();

 

如下代码为如何实现显示障碍点。

function ShowBarr(){

    //获取目标点个数

    var count = sightline.get_targetPointCount();

    for(var i=0; i<count; i++){

         //获取分析结果

         var result = sightline.getVisibleResult(i);

         //获取分析结果的障碍点

         var pt = result.get_barrierPoint();

         if(!result.get_isVisible()){

                var geoPt3d = new SuperMap.Web.Core.GeoPoint3D(pt);

                //将获取到障碍点显示到场景的跟踪图层中

                addGeometryToScene(geoPt3d,0);

          }

      }

}

 

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

23通视分析结果

 


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