# new TerrainAnalyse(viewer, optionsopt)
地形分析
参数:
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
viewer |
Object | 场景视图对象,详见Cesium.Viewer |
|
options |
Object | 包含以下属性的对象 |
|
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' | 坡向箭头图片地址 |
请参考以下示例:
1、坡度分析2、坡向分析
3、坡度坡向分析
4、地形压平
5、结束分析
支持如下方法:
[1、修改等高线宽度,间距和颜色][2、更新分析区域]
[3、更新色表]
[4、更新色表间距值]
[5、修改坡向箭头密度]
[6、开启地形分析,坡度,坡向和等值线]
[7、开启地形分析,坡度,坡向和等值线]
[8、根据输入屏幕坐标查询坡度坡向值]
[9、右键点击查询坡度坡向值]
[10、移除点击查询坡度坡向值事件]
[11、移除坡度坡向,等值面,等高线等分析结果]
[12、地形压平]
[13、移除地形压平]
示例
// 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();
方法
# calculateSlopeAndAspect(screenPoint)
参数:
名称 | 类型 | 描述 |
---|---|---|
screenPoint |
Cesium.Cartesian2 | 查询坡度坡向值的屏幕坐标 |
result 返回查询结果
Object
示例
var terrainAnalyse = new 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)
参数:
名称 | 类型 | 描述 |
---|---|---|
positions |
Array | 分析范围(世界坐标) |
示例
terrainAnalyse.changeAnalyseArea(positions);
# changeArrowAspectRepeat(cartesian2)
参数:
名称 | 类型 | 描述 |
---|---|---|
cartesian2 |
Cesium.Cartesian2 | x,y方向上的重复次数 |
示例
var cartesian2= new Cesium.Cartesian2(3.0,3.0);
changeArrowAspectRepeat(cartesian2);
# changeColorTable(colorTable, ShadingType)
参数:
名称 | 类型 | 描述 |
---|---|---|
colorTable |
Array | 色表 |
ShadingType |
String | 渲染类型,高程赋色'elevation'、坡度分析'slope'、坡向分析'aspect'。 |
示例
var defaultColor = ['#000000', '#2747E0', '#D33B7D', '#D33038', '#FF9742', '#ffd700', '#FFFFFF'];
terrainAnalyse.changeColorTable(defaultColor,'elevation');
# changeColorTableDis(colorTableDis, ShadingType)
参数:
名称 | 类型 | 描述 |
---|---|---|
colorTableDis |
Array | 色表间距值 |
ShadingType |
String | 渲染类型,高程赋色'elevation'、坡度分析'slope'、坡向分析'aspect'。 |
示例
var defaultColor = [0, 0.2, 0.3,0.4, 0.5, 0.6, 1];
terrainAnalyse.changeColorTableDis(defaultColor,'elevation');
# changeContours(ContourSpacing, ContourWidth, ContourColor)
参数:
名称 | 类型 | 描述 |
---|---|---|
ContourSpacing |
Number | 修改等间距 |
ContourWidth |
Number | 修改等高线宽度 |
ContourColor |
Cesium.Color | 修改等高线颜色 |
# queryInfo(getResult)
参数:
名称 | 类型 | 描述 |
---|---|---|
getResult |
function | 回调返回结果 |
示例
var getResult = function(e){console.log(e)};
var terrainAnalyse = new Cesium.TerrainAnalyse(viewer, {});
terrainAnalyse.queryInfo(getResult);
# terrainFlatten(positions, flattenHeight)
参数:
名称 | 类型 | 描述 |
---|---|---|
positions |
Array | 多边形顶点坐标数组 |
flattenHeight |
Number | 压平到指定高度 |
返回是否成功执行
Boolean
# updateElevationBandMaterial(bandPositions, gradient, bandThickness, bandTransparency, backgroundTransparency, colorsArray)
参数:
名称 | 类型 | 描述 |
---|---|---|
bandPositions |
Array | 等值面数组,高度,单位米 |
gradient |
Boolean | 是否渐变 |
bandThickness |
Number | 等值面宽度 |
bandTransparency |
Number | 等值面透明度 |
backgroundTransparency |
Number | 等值面背景透明度 |
colorsArray |
Array | 等值面颜色数组(数组长度不小于bandPositions) |
示例
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(inputShading)
参数:
名称 | 类型 | 描述 |
---|---|---|
inputShading |
String | 地形分析类型 |
示例
terrainAnalyse.updateMaterial('elevation'); //地形分析渲染类型包括高程赋色'elevation'、坡度分析'slope'、坡向分析'aspect',坡向箭头+坡度颜色分析'arrowAspectSlope',等值面分析'elevationBand'。