多点可视域分析,即分析多个观察点的可视范围,可以为共同可视域或非共同可视域。

命名空间:  SuperMap.Analyst.SpatialAnalyst
程序集:  SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll

语法

C#
public static DatasetGrid CalculateViewShed(
	DatasetGrid sourceDataset,
	Point3Ds viewPoints,
	double[] startAngles,
	double[] viewAngles,
	double[] viewRadiuses,
	Datasource targetDatasource,
	string targetDatasetName,
	ViewShedType viewShedType
)

参数

sourceDataset
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
指定的可视域的类型,可以是多个观察点的可视域的交集,也可以是多个观察点可视域的并集。

返回值

多点可视域分析结果数据集。

备注

多点可视域分析,是根据栅格表面,对给定的观察点集合中每一个观察点进行可视域分析,然后根据指定的可视域类型,计算所有观察点的可视域的交集(称为“共同可视域”)或者并集(称为“非共同可视域”),并将结果输出到一个栅格数据集中,其中可视区域保持原始栅格表面的栅格值,其他区域为无值。

如下图所示,图中绿色的点为观察点,叠加在原始栅格表面上的蓝色区域即为对其进行可视域分析的结果。左图展示了三个观察点的共同可视域,右图则是三个观察点的非共同可视域。

注意:如果指定的观察点的高程小于当前栅格表面对应位置的高程值,则观察点的高程值将被自动设置为当前栅格表面的对应位置的高程。

请参见