geosolution/scene~Viewshed(eye, target, options)

用于可视域分析的对象,指定观察点、目标点位置(水平可视角度、垂直可视角度和可视半径),分析可视域并将结果显示在地图上。

Summary

Methods:
getViewshedArea

计算可视域的可视面积和不可视面积(单位是地图单位的平方),并提取可视范围和不可视范围。在调用该方法时,请确保可视域在地图视图范围内。

Constructor

new Viewshed(eye, target, options)

Parameters:
Name Type Description
eye module:basetype~Coordinate

观察点位置

target module:basetype~Coordinate | undefined

目标点位置

options Object

可选项

Name Type Description
visibleColor module:style~Color

可视域分析结果中,可视部分颜色,默认为[0, 255, 0, 0.6]

hideColor module:style~Color

可视域分析结果中,不可视部分颜色,默认为[255, 0, 0, 0.6]

verticalFov Number

垂直可视角度,值要大于0小于160,默认60。

horizontalFov Number

水平可视角度,值要大于0小于160,默认120。

bearing Number | undefined

方位角,取值[-360,360],逆时针为正。

pitch Number | undefined

俯仰角,视线和垂直看向地面的视线的角度,垂直看向地面时俯仰角为-90度,水平时为0度。

radius Number | undefined

可视半径,单位与地图长度单位一致,可以通过地图对象上的getDegreePerMeter和getMeterPerDegree方法,对地图单位进行度和米的转换。当使用方位角和俯仰角构建可视域时,需大于0。

Members

bearing

可视域方位角,类型为Number,取值[-360,360]。

eye

可视域的观察点位置,类型为Coordinate。

hideColor

可视域分析结果的不可视部分的颜色,类型为Color。

horizontalFov

可视域的水平可视角度,类型为Number。

pitch

可视域俯仰角,类型为Number。

radius

可视域半径,类型为Number,单位与地图单位一致。

target

可视域的目标点位置,类型为Coordinate。

verticalFov

可视域的垂直可视角度,类型为Number。

visibleColor

可视域分析结果的可视部分的颜色,类型为Color。

Methods

getViewshedArea(precision, needTriangles) → {Object}

计算可视域的可视面积和不可视面积(单位是地图单位的平方),并提取可视范围和不可视范围。在调用该方法时,请确保可视域在地图视图范围内。

Parameters:
Name Type Default Description
precision Number 5

精度,默认值为5,精度越高,面积计算越准确,提取的范围也更精细,耗时也更久。

needTriangles Boolean false

是否提取可视及不可视范围。

Returns:
Object -

返回结果,属性visibleArea为可视面积,hideArea为不可视面积,visibleTriangles为可视范围,hideTriangles为不可视范围。
可视和不可视范围的数据结构为[[p0, p1, p2], [p3, p4, p5], ......],其中[p0, p1, p2]和[p3, p4, p5]分别为一个三角形,p0、p1、p2...等均为三角形上的一个点的坐标。