Class: TerrainAnalyse

TerrainAnalyse

new TerrainAnalyse(viewer, options)

engineExtensions/analysis/TerrainAnalyse.js, line 7

请参考以下示例:
1、坡度分析
2、坡向分析
3、坡度坡向分析
4、地形压平
5、结束分析
支持如下方法:
[1、修改等高线宽度,间距和颜色]
[2、更新分析区域]
[3、更新色表]
[4、更新色表间距值]
[5、修改坡向箭头密度]
[6、开启地形分析,坡度,坡向和等值线]
[7、开启地形分析,坡度,坡向和等值线]
[8、根据输入屏幕坐标查询坡度坡向值]
[9、右键点击查询坡度坡向值]
[10、移除点击查询坡度坡向值事件]
[11、移除坡度坡向,等值面,等高线等分析结果]
[12、地形压平]
[13、移除地形压平]

地形分析

Name Type Description
viewer Object

场景视图对象,详见Cesium.Viewer

options Object 可选

包含以下属性的对象

Name Type Default Description
contourColor Cesium.Color Cesium.Color.RED.clone() 可选

等高线颜色默认为红色,详见Cesium.Color

contourWidth Number 2.0 可选

等高线宽度

contourSpacing Number 150.0 可选

等高线间距

enableContour Boolean false 可选

等高线是否开启

minHeight Number 0 可选

高程最小值

maxHeight Number 1000 可选

高程最大值

gradual array true 可选

颜色是否有渐变效果

elevationRampColor array 可选

高程色表

slopeRampColor array 可选

坡度色表

aspectRampColor array 可选

坡向色表

bandPositionsColorsArray array 可选

等值面高度和颜色数组

selectedShading String 可选

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

aspectArrowImage String MAPGIS_BASE_URL+'webclient-cesium-plugin-resource/assets/textures/arrow3.png' 可选

坡向箭头图片地址

Examples

坡度分析

// ES5引入方式
const { DrawElement, TerrainAnalyse } = zondy.cesium
// ES6引入方式
import { DrawElement, TerrainAnalyse } from "@mapgis/webclient-cesium-plugin"

1、初始化绘制工具
const drawElement = new DrawElement(viewer);
2、初始化地形分析工具
const terrainAnalyse = new TerrainAnalyse(viewer);
3、绘制几何并执行地形分析
drawElement.startDrawingPolygon({
    callback: function (result) {
        terrainAnalyse.changeAnalyseArea(result.positions);
        terrainAnalyse.selectedShading = 'slope';
    }
});

坡向分析

// ES5引入方式
const { DrawElement, TerrainAnalyse } = zondy.cesium
// ES6引入方式
import { DrawElement, TerrainAnalyse } from "@mapgis/webclient-cesium-plugin"

1、初始化绘制工具
const drawElement = new DrawElement(viewer);
2、初始化地形分析工具
const terrainAnalyse = new TerrainAnalyse(viewer);
3、绘制几何并执行地形分析
drawElement.startDrawingPolygon({
    callback: function (result) {
        terrainAnalyse.changeAnalyseArea(result.positions);
        terrainAnalyse.selectedShading = 'aspectArrow';
    }
});

坡度坡向分析

// ES5引入方式
const { DrawElement, TerrainAnalyse } = zondy.cesium
// ES6引入方式
import { DrawElement, TerrainAnalyse } from "@mapgis/webclient-cesium-plugin"

1、初始化绘制工具
const drawElement = new DrawElement(viewer);
2、初始化地形分析工具
const terrainAnalyse = new TerrainAnalyse(viewer);
3、绘制几何并执行地形分析
drawElement.startDrawingPolygon({
    callback: function (result) {
        terrainAnalyse.changeAnalyseArea(result.positions);
        terrainAnalyse.selectedShading = 'arrowAspectSlope';
    }
});

地形压平

// ES5引入方式
const { DrawElement, TerrainAnalyse } = zondy.cesium
// ES6引入方式
import { DrawElement, TerrainAnalyse } from "@mapgis/webclient-cesium-plugin"

1、初始化绘制工具
const drawElement = new DrawElement(viewer);
2、初始化地形分析工具
const terrainAnalyse = new TerrainAnalyse(viewer);
3、绘制几何并执行地形分析
drawElement.startDrawingPolygon({
    callback: function (result) {
       //得到绘制矩形接口返回的范围extent,并计算出东南西北点坐标
       positions = result.positions
       //压平地形
       terrainAnalyse.terrainFlatten(positions, height)
       //停止绘制,解除鼠标行为
       drawElement.stopDrawing()
    }
});

结束分析

terrainAnalyse.destroy();

Methods

calculateSlopeAndAspect(screenPoint){Object}

engineExtensions/analysis/TerrainAnalyse.js, line 1242

根据输入屏幕坐标查询坡度坡向值

Name Type Description
screenPoint Cesium.Cartesian2

查询坡度坡向值的屏幕坐标

Returns:
Type Description
Object result 返回查询结果
Example
var terrainAnalyse = new zondy.cesium.TerrainAnalyse(viewer, {});
result = terrainAnalyse.calculateSlopeAndAspect(screenPoint);
// 坡度值,单位度,范围0-90°
slopeAngle = result.slope
// 坡向值,单位度,范围0-360°
aspectAngle = result.aspect
// 坡向的8方位描述。可能的取值为N、NE、E、SE、S、SW、W、NW
aspectDescription = result.aspectDescription

changeAnalyseArea(positions)

engineExtensions/analysis/TerrainAnalyse.js, line 632
Name Type Description
positions Array

分析范围(世界坐标)

Example
terrainAnalyse.changeAnalyseArea(positions);

changeArrowAspectRepeat(cartesian2)

engineExtensions/analysis/TerrainAnalyse.js, line 715
Name Type Description
cartesian2 Cesium.Cartesian2

x,y方向上的重复次数

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

changeColorTable(colorTable, ShadingType)

engineExtensions/analysis/TerrainAnalyse.js, line 669
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)

engineExtensions/analysis/TerrainAnalyse.js, line 687
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)

engineExtensions/analysis/TerrainAnalyse.js, line 615
Name Type Description
ContourSpacing Number

修改等间距

ContourWidth Number

修改等高线宽度

ContourColor Cesium.Color

修改等高线颜色

destroy()

engineExtensions/analysis/TerrainAnalyse.js, line 1346

queryInfo(getResult)

engineExtensions/analysis/TerrainAnalyse.js, line 1278
Name Type Description
getResult function

回调返回结果

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

removeQueryInfo()

engineExtensions/analysis/TerrainAnalyse.js, line 1330

removeTerrainFlatten()

engineExtensions/analysis/TerrainAnalyse.js, line 1422

terrainFlatten(positions, flattenHeight){Boolean}

engineExtensions/analysis/TerrainAnalyse.js, line 1362
Name Type Description
positions Array

多边形顶点坐标数组

flattenHeight Number

压平到指定高度

Returns:
Type Description
Boolean 返回是否成功执行

updateElevationBandMaterial(bandPositions, gradient, bandThickness, bandTransparency, backgroundTransparency, colorsArray)

engineExtensions/analysis/TerrainAnalyse.js, line 893
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 zondy.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(inputShading)

engineExtensions/analysis/TerrainAnalyse.js, line 730
Name Type Description
inputShading String

地形分析类型

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