三维可视分析类。三维可视分析包括通视分析和可视域分析,前者用于判断两点间是否通视,后者用于对观察点的可视范围进行分析。该类已经废弃,使用Sightline代替

命名空间:  SuperMap.Realspace.SpatialAnalyst
程序集:  SuperMap.Realspace.SpatialAnalyst (in SuperMap.Realspace.SpatialAnalyst)
版本: dll

语法

C#
[ObsoleteAttribute]
public static class VisibilityAnalyst3D

备注

通视分析是三维GIS中常用的分析功能,用于判断三维场景中任意两点之间的通视情况。

通视分析需要用户指定观察点和目标点,分析的结果保存在VisibleResult3D对象中,包含了是否通视、通视线对象、不通视线对象以及障碍点的信息。

通视分析示意图:

分析结果如下图所示:

示例

以下代码示范如何在三维场景中进行通视性分析。

CopyC#
public void VisibilityAnalyst(SceneControl sceneControl)
{
     // 设置交互模式为三维通视分析模式
     sceneControl.Action = Action3D.Intervisibility;

     // 设置通视性分析的场景为三维控件的场景。
     VisibilityAnalyst3D.Scene = sceneControl.Scene;

     // 观察点
     Point3D viewPoint = new Point3D(116.101074944241,40.6654658434974,853.498245092109);

     // 目标点
     Point3D targetPoint = new Point3D(116.112775633765, 40.7851918021846, 1020.92712477595);


     // 判断两点知否通视,并保存分析结果到通视分析结果对象
     VisibleResult3D Vres = VisibilityAnalyst3D.IsVisible(viewPoint, targetPoint);

     // 如果两点不通视,则将不通视线和通视线绘制到场景跟踪层
     if (!Vres.Visible)
     {
          sceneControl.Scene.TrackingLayer.Add(Vres.LineVisible, "pass");
          sceneControl.Scene.TrackingLayer.Add(Vres.LineInvisible, "notpass");
     }
     // 如果两点通视,则将通视线绘制到跟踪层
     else
     {
          sceneControl.Scene.TrackingLayer.Add(Vres.LineVisible, "visible");
     }
}

继承层次

System..::.Object
  SuperMap.Realspace.SpatialAnalyst..::.VisibilityAnalyst3D

版本信息

SuperMap iObjects .NET

受以下版本支持: 7.0.0, 7.0.1
在 10.0.0 中过时(编译器警告)
在 10.0.1 中过时(编译器警告)
在 10.1.0 中过时(编译器警告)
在 10.1.1 中过时(编译器警告)
在 10.2.0 中过时(编译器警告)
在 10.2.1 中过时(编译器警告)
在 11.0.0 中过时(编译器警告)
在 7.1.0 中过时(编译器警告)
在 7.1.1 中过时(编译器警告)
在 7.1.2 中过时(编译器警告)
在 8.0.0 中过时(编译器警告)
在 8.0.1 中过时(编译器警告)
在 8.0.2 中过时(编译器警告)
在 8.1.0 中过时(编译器警告)
在 8.1.1 中过时(编译器警告)
在 9.0.0 中过时(编译器警告)
在 9.0.1 中过时(编译器警告)
在 9.1.0 中过时(编译器警告)
在 9.1.2 中过时(编译器警告)

SuperMap Objects .NET

受以下版本支持: 6.1.3

请参见