多点可视域分析,即分析多个观察点的可视范围,可以为共同可视域或非共同可视域。
命名空间:
SuperMap.Analyst.SpatialAnalyst程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static DatasetGrid CalculateViewShed( DatasetGrid sourceDatasetGrid, Point3Ds viewPoints, double[] startAngles, double[] viewAngles, double[] viewRadiuses, Datasource targetDatasource, string targetDatasetName, ViewShedType viewShedType ) |
参数
- sourceDatasetGrid
- Type: SuperMap.Data..::.DatasetGrid
指定的用于可视域分析的栅格表面数据集。
- viewPoints
- Type: SuperMap.Data..::.Point3Ds
指定的观察点集合。
- startAngles
- Type: array<
System..::.Double
>[]()[]
指定的起始观察角度集合,与观察点一一对应。单位为度,以正北方向为 0 度,顺时针方向旋转。指定为负值或大于 360 度,将自动换算到 0 到 360 度范围内。
- viewAngles
- Type: array<
System..::.Double
>[]()[]
指定的观察角度集合,与观察点和起始观察角度一一对应,单位为度,最大值为 360 度。观察角度基于起始角度,即观察角度范围为 [起始角度,起始角度+观察角度]。例如起始角度为 90 度,观察角度为 90 度,那么实际观察的角度范围是从 90 度到 180 度。但注意,当指定为 0 或负值时,无论起始角度为何值,观察范围都为 0 到 360 度。
- viewRadiuses
- Type: array<
System..::.Double
>[]()[]
指定的观察半径集合,与观察点一一对应。该值限制了视野范围的大小。观测半径小于等于 0 时,表示无限制。单位为米。
- targetDatasource
- Type: SuperMap.Data..::.Datasource
指定的用于存储结果数据集的数据源。
- targetDatasetName
- Type: System..::.String
指定的结果数据集的名称。
- viewShedType
- Type: SuperMap.Analyst.SpatialAnalyst..::.ViewShedType
指定的可视域的类型,可以是多个观察点的可视域的交集,也可以是多个观察点可视域的并集。
返回值
多点可视域分析结果数据集。备注
多点可视域分析,是根据栅格表面,对给定的观察点集合中每一个观察点进行可视域分析,然后根据指定的可视域类型,计算所有观察点的可视域的交集(称为“共同可视域”)或者并集(称为“非共同可视域”),并将结果输出到一个栅格数据集中,其中可视区域保持原始栅格表面的栅格值,其他区域为无值。
如下图所示,图中绿色的点为观察点,叠加在原始栅格表面上的蓝色区域即为对其进行可视域分析的结果。左图展示了三个观察点的共同可视域,右图则是三个观察点的非共同可视域。
注意:如果指定的观察点的高程小于当前栅格表面对应位置的高程值,则观察点的高程值将被自动设置为当前栅格表面的对应位置的高程。