三维分析之通视分析

312 篇文章 80 订阅
172 篇文章 55 订阅

nannan

        通视分析是三维GIS中常用的分析功能,用于判断三维场景中任意两点之间的通视情况。可根据在 3D 空间中相对于某表面或多面体要素类提供的障碍的位置,计算观察点与被观察点之间的通视性,沿着这些点之间的视线确定可见性。
通视分析示意图如下:
在这里插入图片描述
        通视分析需要用户指定观察点和被观察点,观察点与被观察点是一对多的关系,一个观察点可对应多个被观察点进行分析,一个被观察点只能对应一个观察点进行通视分析。分析结果输出线将沿着输入视线的可见与不可见部分进行划分,绿色表示可见,红色表示不可见。

操作步骤:

1.在场景中添加需进行通视分析的模型数据,在“三维分析”选项卡上的“空间分析”组中,单击“通视分析”按钮,弹出“三维空间分析”面板。
在这里插入图片描述
2. 将鼠标移至场景中,当鼠标状态变为+在这里插入图片描述 时,即可在数据表面单击鼠标选取观察点。
3.添加一个观察点之后,鼠标状态会自动切换为拾取被观察点的状态,可继续添加一个或多个被观察点。在移动鼠标绘制被观察点时,可实时显示观察点与鼠标所在位置处的通视情况。
4.同时,在“三维空间分析”面板中,选中“通视分析”结点,单击工具栏中的“添加”按钮,可在场景的适当位置单击拾取添加观察点;选中通视分析结点目录下的某个观察点结点,单击工具栏中的“添加”按钮,可在场景的适当位置单击拾取该观察点对应的被观察点。
5.添加观察点与被观察点后,会实时分析观察点与对应被观察点之间的可见性。
在这里插入图片描述
6.全选被观察点后,勾选高亮显示障碍物,场景中会高亮显示障碍物,自动弹出障碍物相关属性信息。
在这里插入图片描述

以下代码示范.Net组件如何在三维场景中进行通视性分析:

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");
     }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值