三维可视分析类。三维可视分析包括通视分析和可视域分析,前者用于判断两点间是否通视,后者用于对观察点的可视范围进行分析。该类已经废弃,使用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.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 中过时(编译器警告)