# TerrainAnalyse

TerrainAnalyse 地形分析功能的主要类

#### new Cesium.TerrainAnalyse(viewer, options)
MapGIS/Provider/TerrainAnalyse.js 56

Name | Type | Description
--- | --- | ---
`viewer` | Viewer | 场景视图对象

`options`

Object

optional 包含以下属性的对象

Name | Type | Default | Description
--- | --- | --- | ---
`contourColor` | Color | `Color.RED.clone()` | optional 等高线颜色默认为红色
`contourWidth` | Number | `2.0` | optional 等高线宽度
`contourSpacing` | Number | `150.0` | optional 等高线间距
`enableContour` | Boolean | `false` | optional 等高线是否开启
`minHeight` | Number | `0` | optional 高程最小值
`maxHeight` | Number | `1000` | optional 高程最大值
`gradual` | array | `true` | optional 颜色是否有渐变效果
`elevationRampColor` | array |  | optional 高程色表
`slopeRampColor` | array |  | optional 坡度色表
`aspectRampColor` | array |  | optional 坡向色表
`bandPositionsColorsArray` | array |  | optional 等值面高度和颜色数组
`selectedShading` | String |  | optional //地形分析渲染类型包括高程赋色'elevation'、坡度分析'slope'、坡向分析'aspect',坡向箭头+坡度颜色分析'arrowAspectSlope',等值面分析'elevationBand'。

##### Example:

    var viewer = new Cesium.Viewer('cesiumContainer', {});
    var terrainAnalyse = new Cesium.TerrainAnalyse(viewer, {});
    terrainAnalyse.selectedShading='elevation';
    terrainAnalyse.enableContour(enableContour);

### Methods

#### changeAnalyseArea(positions)
MapGIS/Provider/TerrainAnalyse.js 467

更新分析区域

Name | Type | Description
--- | --- | ---
`positions` | Array | 分析范围（世界坐标）

##### Example:

    terrainAnalyse.changeAnalyseArea(positions);

#### changeArrowAspectRepeat(cartesian2)
MapGIS/Provider/TerrainAnalyse.js 529

修改坡向箭头密度

Name | Type | Description
--- | --- | ---
`cartesian2` | Cartesian2 | x,y方向上的重复次数

##### Example:

    var  cartesian2= new Cesium.Cartesian2(3.0,3.0);
    changeArrowAspectRepeat(cartesian2);

#### changeColorTable(colorTable, ShadingType)
MapGIS/Provider/TerrainAnalyse.js 495

更新色表

Name | Type | Description
--- | --- | ---
`colorTable` | Array | 色表
`ShadingType` | String | 渲染类型，高程赋色'elevation'、坡度分析'slope'、坡向分析'aspect'。

##### Example:

    var defaultColor = ['#000000', '#2747E0', '#D33B7D', '#D33038', '#FF9742', '#ffd700', '#FFFFFF'];
    terrainAnalyse.changeColorTable(defaultColor,'elevation');

#### changeColorTableDis(colorTableDis, ShadingType)
MapGIS/Provider/TerrainAnalyse.js 513

更新色表间距值

Name | Type | Description
--- | --- | ---
`colorTableDis` | Array | 色表间距值
`ShadingType` | String | 渲染类型，高程赋色'elevation'、坡度分析'slope'、坡向分析'aspect'。

##### Example:

    var defaultColor = [0, 0.2, 0.3,0.4, 0.5, 0.6, 1];
    terrainAnalyse.changeColorTableDis(defaultColor,'elevation');

#### changeContours(ContourSpacing, ContourWidth, ContourColor)
MapGIS/Provider/TerrainAnalyse.js 445

修改等高线宽度，间距和颜色

Name | Type | Description
--- | --- | ---
`ContourSpacing` | Number | 修改等间距
`ContourWidth` | Number | 修改等高线宽度
`ContourColor` | Color | 修改等高线颜色

#### destroy()
MapGIS/Provider/TerrainAnalyse.js 957

移除坡度坡向，等值面，等高线等分析结果

#### queryInfo(getResult)
MapGIS/Provider/TerrainAnalyse.js 908

右键点击查询坡度坡向值

Name | Type | Description
--- | --- | ---
`getResult` | function | 回调返回结果

##### Example:

    var getResult = function(e){console.log(e)};
    var terrainAnalyse = new Cesium.TerrainAnalyse(viewer, {});
    terrainAnalyse.queryInfo(getResult);

#### removeQueryInfo()
MapGIS/Provider/TerrainAnalyse.js 941

移除点击查询坡度坡向值事件

#### removeTerrainFlatten()
MapGIS/Provider/TerrainAnalyse.js 1001

移除地形压平

#### terrainFlatten(positions, flattenHeight) → Boolean
MapGIS/Provider/TerrainAnalyse.js 973

地形压平

Name | Type | Description
--- | --- | ---
`positions` | Array | 多边形顶点坐标数组
`flattenHeight` | Number | 压平到指定高度

##### Returns:

返回是否成功执行

#### updateElevationBandMaterial(bandPositions, gradient, bandThickness, bandTransparency, backgroundTransparency, colorsArray)
MapGIS/Provider/TerrainAnalyse.js 651

开启地形等值面分析

Name | Type | Description
--- | --- | ---
`bandPositions` | Array | 等值面数组，高度，单位米
`gradient` | Boolean | 是否渐变
`bandThickness` | Number | 等值面宽度
`bandTransparency` | Number | 等值面透明度
`backgroundTransparency` | Number | 等值面背景透明度
`colorsArray` | Array | 等值面颜色数组(数组长度不小于bandPositions)

##### Example:

    var bandPositions = [400,800,1300];
    var terrainA = new Cesium.TerrainAnalyse(viewer);

    var colorsArray =[Cesium.Color.RED,Cesium.Color.BLUE,Cesium.Color.GREEN];
    terrainAnalyse.updateElevationBandMaterial(bandPositions,false,100,1.0,0.0,colorsArray);

#### updateMaterial(selectedShading)
MapGIS/Provider/TerrainAnalyse.js 543

开启地形分析，坡度，坡向和等值线

Name | Type | Description
--- | --- | ---
`selectedShading` | String | 地形分析类型

##### Example:

    terrainAnalyse.updateMaterial('elevation'); //地形分析渲染类型包括高程赋色'elevation'、坡度分析'slope'、坡向分析'aspect',坡向箭头+坡度颜色分析'arrowAspectSlope',等值面分析'elevationBand'。