计算视点在场景中的可视体(基于视锥体,保留可见区域形成的几何体)。
语法
meshgeom ST_ComputeViewShed(scene sc, cstring viewpoint);
参数
参数名称 | 描述 |
sc | scene对象。 |
viewpoint | 视点信息。 使用JSON格式:
|
视点信息的JSON中各参数含义:
参数 | 描述 | 取值范围 |
x | 视点的x坐标,默认为0。 | (-inf, +inf) |
y | 视点的y坐标,默认为0。 | (-inf, +inf) |
z | 视点的z坐标,默认为0。 | (-inf, +inf) |
h | 视点的附加高度,默认为0。 | [0, +inf) |
azimuth | 从正北方向(y轴正向)起,依顺时针方向到观察方向之间的夹角,默认为 0,单位为度。 | [-180, 180] |
pitch | 俯仰角(观察方向与XOY平面的夹角),当观察方向在XOY平面上方时,俯仰角为正,否则为负。默认为0,单位为度。 | [-90, 90] |
distance | 最大可视距离,值越大视锥体覆盖范围越广,默认为100。 | (0, +inf) |
horizontalFov | 水平视角范围,默认为90,单位为度。 | (0, 180) |
verticalFov | 垂直视角范围,默认为60,单位为度。 | (0, 180) |
depthMapSize | 深度图尺寸,深度图尺寸越大,计算的视锥体越精细,默认为128。 | (0, 2048] |
描述
根据输入的scene对象、视点信息计算视点在场景中的可视体(基于视锥体,保留可见区域形成的几何体),视锥体的更多信息,请参见ST_ComputeFrustum。
该函数目前仅支持osg类型的scene对象。
示例如下图:
可视体(俯视图)
可视体(侧视图)
示例
SELECT ST_NumPatches(ST_ComputeViewShed(scene, '{"x" : 2938, "y" : 750, "z" : 90, "h" : 1.8, "azimuth" : 90, "pitch" : -35, "horizontalFov" : 90, "verticalFov" : 60, "distance" : 600, "depthMapSize" : 128}')) from t;
--------
32766
文档内容是否对您有帮助?