# ViewShed
查阅Cesium API

#### new mars3d.graphic.ViewShed(options)
graphic/custom/ViewShed.js 41

可视域 矢量对象，该对象暂不支持鼠标交互和拾取

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`position` | LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | BaseGraphic.AjaxPosition | BaseGraphic.TimePosition | Array.<number> | string |  | 可选 坐标位置
`targetPosition` | LngLatPoint | Cesium.Cartesian3 | Array.<number> |  | 可选 目标视点位置,可以替代style中的相机heading\pitch\roll方向和distance距离参数
`style` | ViewShed.StyleOptions |  | 样式信息
`attr` | object | BaseGraphic.AjaxAttr |  | 可选 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
`terrain` | boolean | `true` | 可选 是否启用地形的阴影效果，在平原地区或无地形时可以关闭
`depthBiasStep` | number | `1` | 可选 控制准确度和锯齿的参数，如需更精确可以传0.1、如需更平滑传100优化锯齿感（牺牲了一点精度）
`id` | string | number | `createGuid()` | 可选 矢量数据id标识
`name` | string |  | 可选 矢量数据名称
`show` | boolean | `true` | 可选 矢量数据是否显示
`eventParent` | BaseClass | boolean |  | 可选 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
`flyTo` | boolean |  | 可选 加载完成数据后是否自动飞行定位到数据所在的区域。
`flyToOptions` | object |  | 可选 加载完成数据后是否自动飞行定位到数据所在的区域的对应 `BaseGraphic#flyTo`方法参数。

##### 参考:

- `支持的事件类型`

### 继承自

- BasePointPrimitive

### 属性值

#### angle : number
graphic/custom/ViewShed.js 91

水平张角，半场角度

#### angle2 : number
graphic/custom/ViewShed.js 104

垂直张角，半场角度

#### 只读 camera : Cesium.Camera
graphic/custom/ViewShed.js 189

相机对象

#### 只读 center : Cesium.Cartesian3
graphic/primitive/BasePointPrimitive.js 201

中心点坐标 （笛卡尔坐标）

继承自:
  - BasePointPrimitive#center

#### 只读 centerPoint : LngLatPoint
graphic/primitive/BasePointPrimitive.js 210

中心点坐标

继承自:
  - BasePointPrimitive#centerPoint

#### debugAxis : boolean
graphic/primitive/BasePointPrimitive.js 350

是否显示3个方向轴，用于对比测试

继承自:
  - BasePointPrimitive#debugAxis

#### debugAxisLength : number
graphic/primitive/BasePointPrimitive.js 387

显示3个方向轴时的对应轴长度，用于对比测试

继承自:
  - BasePointPrimitive#debugAxisLength

#### distance : number
graphic/custom/ViewShed.js 166

距离，单位：米

#### 只读 hasAjaxPostion : boolean
graphic/primitive/BasePointPrimitive.js 621

是否 ajax后端动态坐标

继承自:
  - BasePointPrimitive#hasAjaxPostion

#### 只读 hasTimePostion : boolean
graphic/primitive/BasePointPrimitive.js 630

是否 time时序动态坐标

继承自:
  - BasePointPrimitive#hasTimePostion

#### heading : number
graphic/primitive/BasePointPrimitive.js 259

四周方向角，0至360度角度值
提示：父类属性，非所有子类都具备

继承自:
  - BasePointPrimitive#heading

#### height : number
graphic/primitive/BasePointPrimitive.js 218

坐标对应的高度值（单位：米）

继承自:
  - BasePointPrimitive#height

#### hiddenAreaColor : Cesium.Color
graphic/custom/ViewShed.js 129

不可视区域颜色

#### 只读 modelMatrix : Cesium.Matrix4
graphic/primitive/BasePointPrimitive.js 246

将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵。
提示：父类属性，非所有子类都具备

继承自:
  - BasePointPrimitive#modelMatrix

#### objectsToExclude : Array.<object>|undefined
graphic/primitive/BasePointPrimitive.js 309

贴模型分析时，排除的不进行贴模型计算的模型对象，默认是当前本身，可以是： primitives, entities 等

继承自:
  - BasePointPrimitive#objectsToExclude

#### opacity : number
graphic/custom/ViewShed.js 141

混合系数0-1

#### 只读 orientation : Cesium.Quaternion
graphic/primitive/BasePointPrimitive.js 232

三维空间中的旋转 【仅部分对象支持】

继承自:
  - BasePointPrimitive#orientation

#### pitch : number
graphic/primitive/BasePointPrimitive.js 276

俯仰角，上下摇摆的角度，0至360度角度值
提示：父类属性，非所有子类都具备

继承自:
  - BasePointPrimitive#pitch

#### 只读 point : LngLatPoint
graphic/primitive/BasePointPrimitive.js 186

位置坐标

继承自:
  - BasePointPrimitive#point

#### position : Cesium.Cartesian3|LngLatPoint|BaseGraphic.AjaxPosition|BaseGraphic.TimePosition
graphic/primitive/BasePointPrimitive.js 74

位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象

继承自:
  - BasePointPrimitive#position

#### 只读 positionShow : Cesium.Cartesian3
graphic/primitive/BasePointPrimitive.js 166

当前实时位置坐标（笛卡尔坐标）

继承自:
  - BasePointPrimitive#positionShow

#### 只读 positionsShow : Array.<Cesium.Cartesian3>
graphic/primitive/BasePointPrimitive.js 157

同 positions只是为了兼容entity的同名属性

继承自:
  - BasePointPrimitive#positionsShow

#### property : Cesium.SampledPositionProperty|Cesium.CallbackProperty
graphic/primitive/BasePointPrimitive.js 548

动态位置坐标

继承自:
  - BasePointPrimitive#property

#### roll : number
graphic/primitive/BasePointPrimitive.js 293

滚转角，左右摆动的角度，0至360度角度值
提示：父类属性，非所有子类都具备

继承自:
  - BasePointPrimitive#roll

#### 只读 shadowMap : Cesium.ShadowMap
graphic/custom/ViewShed.js 180

场景的ShadowMap阴影图

#### showFrustum : boolean
graphic/custom/ViewShed.js 153

是否显示视椎体框线

#### targetPosition : Cesium.Cartesian3|LngLatPoint
graphic/custom/ViewShed.js 197

目标点位置(笛卡尔坐标)

#### 只读 timeRange : object
graphic/primitive/BasePointPrimitive.js 639

获取当前时序坐标的开始时间和结束时间,返回的是Cesium.JulianDate格式

继承自:
  - BasePointPrimitive#timeRange

#### 只读 timeRangeStr : object
graphic/primitive/BasePointPrimitive.js 648

获取当前时序坐标的开始时间和结束时间,返回的是时间字符串

继承自:
  - BasePointPrimitive#timeRangeStr

#### 只读 trackedEntity : Cesium.Entity|*
graphic/primitive/BasePointPrimitive.js 328

用于 map.trackedEntity 追踪的

继承自:
  - BasePointPrimitive#trackedEntity

#### visibleAreaColor : Cesium.Color
graphic/custom/ViewShed.js 117

可视区域颜色

### 方法

#### addTimePosition(point, currTime) → BasePointPrimitive
graphic/primitive/BasePointPrimitive.js 669

设置并添加动画轨迹位置，按“指定时间”运动到达“指定位置”。 【仅LabelPrimitive、PointPrimitive、BillboardPrimitive、ModelPrimitive 等部分子类支持】

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`point` | LngLatPoint | Cesium.Cartesian3 | Array.<number> |  | 指定位置坐标
`currTime` | Cesium.JulianDate | Date | string | number | `Cesium.JulianDate.now()` | 可选 指定时间。当为String时，可以传入'2021-01-01 12:13:00'; 当为Number时，可以传入当前时间延迟的秒数。

##### 返回值:

当前对象本身，可以链式调用

继承自:
  - BasePointPrimitive#addTimePosition

#### autoSurfaceHeight(options) → Promise.<object>
graphic/primitive/BasePointPrimitive.js 741

异步计算更新坐标高度进行贴地(或贴模型)，内部自动调用`PointUtil#getSurfaceHeight`方法处理。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`options` | object | `{}` | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`has3dtiles` | boolean | `auto` | 可选 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
`objectsToExclude` | Array.<object> |  | 可选 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features

##### 返回值:

异步计算完成的Promise

继承自:
  - BasePointPrimitive#autoSurfaceHeight

#### clearTimePostion(maxCacheCount) → void
graphic/primitive/BasePointPrimitive.js 657

清除所有时序动态坐标

参数名称 | 类型 | 描述信息
--- | --- | ---
`maxCacheCount` | number | 可选 保留的坐标数量，默认清除所有。

##### 返回值:

继承自:
  - BasePointPrimitive#clearTimePostion

#### setOpacity(value) → void
graphic/custom/ViewShed.js 574

设置整体透明度(globalAlpha值), 不是所有类型均支持，主要看数据类型和材质类型决定。 对象本身透明度请用 graphic.setStyle({ opacity: value })

参数名称 | 类型 | 描述信息
--- | --- | ---
`value` | number | 透明度

##### 返回值:

无

#### setView() → void
graphic/custom/ViewShed.js 552

定位至相机的第一视角

##### 返回值:

无

#### startDraw(layer) → void
graphic/custom/ViewShed.js 585

开始绘制矢量数据，绘制的数据会加载在layer图层。

参数名称 | 类型 | 描述信息
--- | --- | ---
`layer` | GraphicLayer | 图层

##### 返回值:

无

#### stopDraw() → void
graphic/custom/ViewShed.js 610

停止绘制

##### 返回值:

无

### 定义的类型

#### mars3d.graphic.ViewShed.StyleOptions
graphic/custom/ViewShed.js 21

可视域矢量对象 支持的样式信息

##### 属性:

属性名称 | 类型 | 可选 | 默认值 | 描述信息
--- | --- | --- | --- | ---
`angle` | number | <可选> | 60 | 水平张角(度数)，半场角度，取值范围 0-60
`angle2` | number | <可选> | 45 | 垂直张角(度数)，半场角度，取值范围 0-45
`distance` | number | <可选> |  | 投射最远距离，单位：米
`heading` | number | <可选> | 0 | 方向角 （度数值，0至360度）
`pitch` | number | <可选> | 0 | 俯仰角（度数值，0至360度）
`roll` | number | <可选> | 0 | 翻滚角（度数值，0至360度）
`opacity` | number | <可选> | 0.6 | 透明度 0.0 - 1.0
`visibleAreaColor` | Cesium.Color | string | <可选> | new Cesium.Color(0, 1, 0) | 可视区域颜色
`hiddenAreaColor` | Cesium.Color | string | <可选> | new Cesium.Color(1, 0, 0) | 不可视区域颜色
`addHeight` | number | <可选> |  | 在坐标点增加的高度值，规避遮挡，效果更友好
`showFrustum` | boolean | <可选> | false | 是否显示视椎体框线