com.supermap.realspace.spatialanalyst
类 VisibilityAnalyst3D
- java.lang.Object
-
- com.supermap.realspace.spatialanalyst.VisibilityAnalyst3D
-
已过时。该类已经废弃,使用Sightline
替换。
@Deprecated public abstract class VisibilityAnalyst3D extends Object
三维可视分析类。三维可视分析包括通视分析和可视域分析,前者用于判断两点间是否通视,后者用于对观察点的可视范围进行分析。该类已经废弃,使用Sightline代替。 通视分析是三维GIS中常用的分析功能,用于判断三维场景中任意两点之间的通视情况。
-
-
方法详细资料
-
setScene
public static void setScene(Scene value)
已过时。设置待分析的场景对象。- 参数:
value
- 待分析的场景对象。
-
getScene
public static Scene getScene()
已过时。返回待分析的场景对象。- 返回:
- 待分析的场景对象。
-
isVisible
public static VisibleResult3D isVisible(Point3D viewPoint, Point3D targetPoint)
已过时。根据指定的观察点和目标点,来进行通视性分析。分析的结果保存在返回值中,为通视分析结果类对象。通视分析是三维GIS中常用的分析功能,用于判断三维场景中任意两点之间的通视情况。
通视分析需要用户指定观察点和目标点,分析的结果保存在
VisibleResult3D
对象中,包含了是否通视、通视线对象、不通视线对象以及障碍点的信息。通视分析示意图:
分析结果如下图所示:
- 参数:
viewPoint
- 指定的观察点对象。targetPoint
- 指定的目标点对象。- 返回:
- 通视分析结果类对象。
- 示范代码:
- 以下代码示范如何在三维场景中进行通视性分析。
public void visibilityAnalyst(SceneControl sceneControl) { // 设置交互模式为三维通视分析模式 sceneControl.setAction(Action3D.INTERVISIBILITY); // 设置通视性分析的场景为三维控件的场景 VisibilityAnalyst3D.setScene(sceneControl.getScene()); // 观察点 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.isVisible()){ sceneControl.getScene().getTrackingLayer().add(vres.getLineInvisible(), "pass"); sceneControl.getScene().getTrackingLayer().add(vres.getLineInvisible(), "notpass"); } // 如果两点通视,则将通视线绘制到跟踪层 else{ sceneControl.getScene().getTrackingLayer().add(vres.getLineInvisible(), "visible"); } }
-
-
Copyright © 2021–2024 SuperMap. All rights reserved.